@@ -8,28 +8,26 @@ using node::AliasedBuffer;
88class AliasBufferTest : public NodeTestFixture {};
99
1010template <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);
1414 }
1515}
1616
1717template <class NativeT , class V8T >
1818void WriteViaOperator (AliasedBuffer<NativeT, V8T>* aliasedBuffer,
19- size_t size,
20- NativeT* oracle) {
19+ const std::vector<NativeT>& oracle) {
2120 // write through the API
22- for (size_t i = 0 ; i < size; i++) {
21+ for (size_t i = 0 ; i < oracle. size () ; i++) {
2322 (*aliasedBuffer)[i] = oracle[i];
2423 }
2524}
2625
2726template <class NativeT , class V8T >
2827void WriteViaSetValue (AliasedBuffer<NativeT, V8T>* aliasedBuffer,
29- size_t size,
30- NativeT* oracle) {
28+ const std::vector<NativeT>& oracle) {
3129 // write through the API
32- for (size_t i = 0 ; i < size; i++) {
30+ for (size_t i = 0 ; i < oracle. size () ; i++) {
3331 aliasedBuffer->SetValue (i, oracle[i]);
3432 }
3533}
@@ -38,27 +36,26 @@ template<class NativeT, class V8T>
3836void ReadAndValidate (v8::Isolate* isolate,
3937 v8::Local<v8::Context> context,
4038 AliasedBuffer<NativeT, V8T>* aliasedBuffer,
41- size_t size,
42- NativeT* oracle) {
39+ const std::vector<NativeT>& oracle) {
4340 // read through the API
44- for (size_t i = 0 ; i < size; i++) {
41+ for (size_t i = 0 ; i < oracle. size () ; i++) {
4542 NativeT v1 = (*aliasedBuffer)[i];
4643 NativeT v2 = aliasedBuffer->GetValue (i);
4744 EXPECT_TRUE (v1 == oracle[i]);
4845 EXPECT_TRUE (v2 == oracle[i]);
4946 }
5047
5148 // validate size of JS Buffer
52- EXPECT_TRUE (aliasedBuffer->GetJSArray ()->Length () == size);
49+ EXPECT_TRUE (aliasedBuffer->GetJSArray ()->Length () == oracle. size () );
5350 EXPECT_TRUE (
5451 aliasedBuffer->GetJSArray ()->ByteLength () ==
55- (size * sizeof (NativeT)));
52+ (oracle. size () * sizeof (NativeT)));
5653
5754 // validate operator * and GetBuffer are the same
5855 EXPECT_TRUE (aliasedBuffer->GetNativeBuffer () == *(*aliasedBuffer));
5956
6057 // read through the JS API
61- for (size_t i = 0 ; i < size; i++) {
58+ for (size_t i = 0 ; i < oracle. size () ; i++) {
6259 v8::Local<V8T> v8TypedArray = aliasedBuffer->GetJSArray ();
6360 v8::MaybeLocal<v8::Value> v = v8TypedArray->Get (context, i);
6461 EXPECT_TRUE (v.IsEmpty () == false );
@@ -80,21 +77,19 @@ void ReadWriteTest(v8::Isolate* isolate) {
8077
8178 const size_t size = 100 ;
8279 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);
8784
88- WriteViaSetValue (&ab, size, oracle);
85+ WriteViaSetValue (&ab, oracle);
8986
9087 // validate copy constructor
9188 {
9289 AliasedBuffer<NativeT, V8T> ab2 (ab);
93- ReadAndValidate (isolate, context, &ab2, size, oracle);
90+ ReadAndValidate (isolate, context, &ab2, oracle);
9491 }
95- ReadAndValidate (isolate, context, &ab, size, oracle);
96-
97- delete[] oracle;
92+ ReadAndValidate (isolate, context, &ab, oracle);
9893}
9994
10095template <
@@ -124,28 +119,28 @@ void SharedBufferTest(
124119 AliasedBuffer<NativeT_C, V8T_C> ab_C (
125120 isolate, sizeInBytes_A + sizeInBytes_B, count_C, rootBuffer);
126121
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);
133128
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);
137132
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);
141136
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);
145140
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);
149144}
150145
151146TEST_F (AliasBufferTest, Uint8Array) {
0 commit comments