@@ -8,28 +8,26 @@ using node::AliasedBuffer;
8
8
class AliasBufferTest : public NodeTestFixture {};
9
9
10
10
template <class NativeT >
11
- void CreateOracleValues (NativeT* buf, size_t count ) {
12
- for (size_t i = 0 , j = count ; i < count ; i++, j--) {
13
- buf[i] = static_cast <NativeT>(j);
11
+ void CreateOracleValues (std::vector< NativeT> * buf) {
12
+ for (size_t i = 0 , j = buf-> size () ; i < buf-> size () ; i++, j--) {
13
+ (* buf) [i] = static_cast <NativeT>(j);
14
14
}
15
15
}
16
16
17
17
template <class NativeT , class V8T >
18
18
void WriteViaOperator (AliasedBuffer<NativeT, V8T>* aliasedBuffer,
19
- size_t size,
20
- NativeT* oracle) {
19
+ const std::vector<NativeT>& oracle) {
21
20
// write through the API
22
- for (size_t i = 0 ; i < size; i++) {
21
+ for (size_t i = 0 ; i < oracle. size () ; i++) {
23
22
(*aliasedBuffer)[i] = oracle[i];
24
23
}
25
24
}
26
25
27
26
template <class NativeT , class V8T >
28
27
void WriteViaSetValue (AliasedBuffer<NativeT, V8T>* aliasedBuffer,
29
- size_t size,
30
- NativeT* oracle) {
28
+ const std::vector<NativeT>& oracle) {
31
29
// write through the API
32
- for (size_t i = 0 ; i < size; i++) {
30
+ for (size_t i = 0 ; i < oracle. size () ; i++) {
33
31
aliasedBuffer->SetValue (i, oracle[i]);
34
32
}
35
33
}
@@ -38,27 +36,26 @@ template<class NativeT, class V8T>
38
36
void ReadAndValidate (v8::Isolate* isolate,
39
37
v8::Local<v8::Context> context,
40
38
AliasedBuffer<NativeT, V8T>* aliasedBuffer,
41
- size_t size,
42
- NativeT* oracle) {
39
+ const std::vector<NativeT>& oracle) {
43
40
// read through the API
44
- for (size_t i = 0 ; i < size; i++) {
41
+ for (size_t i = 0 ; i < oracle. size () ; i++) {
45
42
NativeT v1 = (*aliasedBuffer)[i];
46
43
NativeT v2 = aliasedBuffer->GetValue (i);
47
44
EXPECT_TRUE (v1 == oracle[i]);
48
45
EXPECT_TRUE (v2 == oracle[i]);
49
46
}
50
47
51
48
// validate size of JS Buffer
52
- EXPECT_TRUE (aliasedBuffer->GetJSArray ()->Length () == size);
49
+ EXPECT_TRUE (aliasedBuffer->GetJSArray ()->Length () == oracle. size () );
53
50
EXPECT_TRUE (
54
51
aliasedBuffer->GetJSArray ()->ByteLength () ==
55
- (size * sizeof (NativeT)));
52
+ (oracle. size () * sizeof (NativeT)));
56
53
57
54
// validate operator * and GetBuffer are the same
58
55
EXPECT_TRUE (aliasedBuffer->GetNativeBuffer () == *(*aliasedBuffer));
59
56
60
57
// read through the JS API
61
- for (size_t i = 0 ; i < size; i++) {
58
+ for (size_t i = 0 ; i < oracle. size () ; i++) {
62
59
v8::Local<V8T> v8TypedArray = aliasedBuffer->GetJSArray ();
63
60
v8::MaybeLocal<v8::Value> v = v8TypedArray->Get (context, i);
64
61
EXPECT_TRUE (v.IsEmpty () == false );
@@ -80,21 +77,19 @@ void ReadWriteTest(v8::Isolate* isolate) {
80
77
81
78
const size_t size = 100 ;
82
79
AliasedBuffer<NativeT, V8T> ab (isolate, size);
83
- NativeT* oracle = new NativeT[ size] ;
84
- CreateOracleValues (oracle, size );
85
- WriteViaOperator (&ab, size, oracle);
86
- ReadAndValidate (isolate, context, &ab, size, oracle);
80
+ std::vector< NativeT> oracle ( size) ;
81
+ CreateOracleValues (& oracle);
82
+ WriteViaOperator (&ab, oracle);
83
+ ReadAndValidate (isolate, context, &ab, oracle);
87
84
88
- WriteViaSetValue (&ab, size, oracle);
85
+ WriteViaSetValue (&ab, oracle);
89
86
90
87
// validate copy constructor
91
88
{
92
89
AliasedBuffer<NativeT, V8T> ab2 (ab);
93
- ReadAndValidate (isolate, context, &ab2, size, oracle);
90
+ ReadAndValidate (isolate, context, &ab2, oracle);
94
91
}
95
- ReadAndValidate (isolate, context, &ab, size, oracle);
96
-
97
- delete[] oracle;
92
+ ReadAndValidate (isolate, context, &ab, oracle);
98
93
}
99
94
100
95
template <
@@ -124,28 +119,28 @@ void SharedBufferTest(
124
119
AliasedBuffer<NativeT_C, V8T_C> ab_C (
125
120
isolate, sizeInBytes_A + sizeInBytes_B, count_C, rootBuffer);
126
121
127
- NativeT_A* oracle_A = new NativeT_A[ count_A] ;
128
- NativeT_B* oracle_B = new NativeT_B[ count_B] ;
129
- NativeT_C* oracle_C = new NativeT_C[ count_C] ;
130
- CreateOracleValues (oracle_A, count_A );
131
- CreateOracleValues (oracle_B, count_B );
132
- CreateOracleValues (oracle_C, count_C );
122
+ std::vector< NativeT_A> oracle_A ( count_A) ;
123
+ std::vector< NativeT_B> oracle_B ( count_B) ;
124
+ std::vector< NativeT_C> oracle_C ( count_C) ;
125
+ CreateOracleValues (& oracle_A);
126
+ CreateOracleValues (& oracle_B);
127
+ CreateOracleValues (& oracle_C);
133
128
134
- WriteViaOperator (&ab_A, count_A, oracle_A);
135
- WriteViaOperator (&ab_B, count_B, oracle_B);
136
- WriteViaOperator (&ab_C, count_C, oracle_C);
129
+ WriteViaOperator (&ab_A, oracle_A);
130
+ WriteViaOperator (&ab_B, oracle_B);
131
+ WriteViaOperator (&ab_C, oracle_C);
137
132
138
- ReadAndValidate (isolate, context, &ab_A, count_A, oracle_A);
139
- ReadAndValidate (isolate, context, &ab_B, count_B, oracle_B);
140
- ReadAndValidate (isolate, context, &ab_C, count_C, oracle_C);
133
+ ReadAndValidate (isolate, context, &ab_A, oracle_A);
134
+ ReadAndValidate (isolate, context, &ab_B, oracle_B);
135
+ ReadAndValidate (isolate, context, &ab_C, oracle_C);
141
136
142
- WriteViaSetValue (&ab_A, count_A, oracle_A);
143
- WriteViaSetValue (&ab_B, count_B, oracle_B);
144
- WriteViaSetValue (&ab_C, count_C, oracle_C);
137
+ WriteViaSetValue (&ab_A, oracle_A);
138
+ WriteViaSetValue (&ab_B, oracle_B);
139
+ WriteViaSetValue (&ab_C, oracle_C);
145
140
146
- ReadAndValidate (isolate, context, &ab_A, count_A, oracle_A);
147
- ReadAndValidate (isolate, context, &ab_B, count_B, oracle_B);
148
- ReadAndValidate (isolate, context, &ab_C, count_C, oracle_C);
141
+ ReadAndValidate (isolate, context, &ab_A, oracle_A);
142
+ ReadAndValidate (isolate, context, &ab_B, oracle_B);
143
+ ReadAndValidate (isolate, context, &ab_C, oracle_C);
149
144
}
150
145
151
146
TEST_F (AliasBufferTest, Uint8Array) {
0 commit comments