2828#include " plasma/plasma.h"
2929#include " plasma/protocol.h"
3030
31- // TODO(pcm): At the moment, stdout of the test gets mixed up with
32- // stdout of the object store. Consider changing that.
33- pid_t start_store () {
34- pid_t pid = fork ();
35- if (pid != 0 ) { return pid; }
36- execlp (" ./plasma_store" , " ./plasma_store" , " -m" , " 10000000" , " -s" , " /tmp/store" , NULL );
37- return 0 ;
38- }
39-
40- TEST (PlasmaClient, ContainsTest) {
41- pid_t store = start_store ();
42- PlasmaClient client;
43- ARROW_CHECK_OK (client.Connect (" /tmp/store" , " " , PLASMA_DEFAULT_RELEASE_DELAY));
31+ class TestPlasmaStore : public ::testing::Test {
32+ public:
33+ // TODO(pcm): At the moment, stdout of the test gets mixed up with
34+ // stdout of the object store. Consider changing that.
35+ void SetUp () {
36+ pid_ = fork ();
37+ if (pid_ != 0 ) {
38+ ARROW_CHECK_OK (client_.Connect (" /tmp/store" , " " , PLASMA_DEFAULT_RELEASE_DELAY));
39+ return ;
40+ }
41+ execlp (" ./plasma_store" , " ./plasma_store" , " -m" , " 10000000" , " -s" , " /tmp/store" , NULL );
42+ }
43+ virtual void Finish () {
44+ ARROW_CHECK_OK (client_.Disconnect ());
45+ kill (pid_, SIGKILL);
46+ }
47+ protected:
48+ pid_t pid_;
49+ PlasmaClient client_;
50+ };
4451
52+ TEST_F (TestPlasmaStore, ContainsTest) {
4553 ObjectID object_id = ObjectID::from_random ();
4654
4755 // Test for object non-existence.
4856 bool has_object;
49- ARROW_CHECK_OK (client .Contains (object_id, &has_object));
57+ ARROW_CHECK_OK (client_ .Contains (object_id, &has_object));
5058 ASSERT_EQ (has_object, false );
5159
5260 // Test for the object being in local Plasma store.
@@ -55,28 +63,21 @@ TEST(PlasmaClient, ContainsTest) {
5563 uint8_t metadata[] = {5 };
5664 int64_t metadata_size = sizeof (metadata);
5765 uint8_t * data;
58- ARROW_CHECK_OK (client .Create (object_id, data_size, metadata, metadata_size, &data));
59- ARROW_CHECK_OK (client .Seal (object_id));
66+ ARROW_CHECK_OK (client_ .Create (object_id, data_size, metadata, metadata_size, &data));
67+ ARROW_CHECK_OK (client_ .Seal (object_id));
6068 // Avoid race condition of Plasma Manager waiting for notification.
6169 ObjectBuffer object_buffer;
62- ARROW_CHECK_OK (client .Get (&object_id, 1 , -1 , &object_buffer));
63- ARROW_CHECK_OK (client .Contains (object_id, &has_object));
70+ ARROW_CHECK_OK (client_ .Get (&object_id, 1 , -1 , &object_buffer));
71+ ARROW_CHECK_OK (client_ .Contains (object_id, &has_object));
6472 ASSERT_EQ (has_object, true );
65-
66- ARROW_CHECK_OK (client.Disconnect ());
67- kill (store, SIGKILL);
6873}
6974
70- TEST (PlasmaClient, GetTest) {
71- pid_t store = start_store ();
72- PlasmaClient client;
73- ARROW_CHECK_OK (client.Connect (" /tmp/store" , " " , PLASMA_DEFAULT_RELEASE_DELAY));
74-
75+ TEST_F (TestPlasmaStore, GetTest) {
7576 ObjectID object_id = ObjectID::from_random ();
7677 ObjectBuffer object_buffer;
7778
7879 // Test for object non-existence.
79- ARROW_CHECK_OK (client .Get (&object_id, 1 , 0 , &object_buffer));
80+ ARROW_CHECK_OK (client_ .Get (&object_id, 1 , 0 , &object_buffer));
8081 ASSERT_EQ (object_buffer.data_size , -1 );
8182
8283 // Test for the object being in local Plasma store.
@@ -85,26 +86,19 @@ TEST(PlasmaClient, GetTest) {
8586 uint8_t metadata[] = {5 };
8687 int64_t metadata_size = sizeof (metadata);
8788 uint8_t * data;
88- ARROW_CHECK_OK (client .Create (object_id, data_size, metadata, metadata_size, &data));
89+ ARROW_CHECK_OK (client_ .Create (object_id, data_size, metadata, metadata_size, &data));
8990 for (int64_t i = 0 ; i < data_size; i++) {
9091 data[i] = static_cast <uint8_t >(i % 4 );
9192 }
92- ARROW_CHECK_OK (client .Seal (object_id));
93+ ARROW_CHECK_OK (client_ .Seal (object_id));
9394
94- ARROW_CHECK_OK (client .Get (&object_id, 1 , -1 , &object_buffer));
95+ ARROW_CHECK_OK (client_ .Get (&object_id, 1 , -1 , &object_buffer));
9596 for (int64_t i = 0 ; i < data_size; i++) {
9697 ASSERT_EQ (data[i], object_buffer.data [i]);
9798 }
98-
99- ARROW_CHECK_OK (client.Disconnect ());
100- kill (store, SIGKILL);
10199}
102100
103- TEST (PlasmaClient, MultipleGetTest) {
104- pid_t store = start_store ();
105- PlasmaClient client;
106- ARROW_CHECK_OK (client.Connect (" /tmp/store" , " " , PLASMA_DEFAULT_RELEASE_DELAY));
107-
101+ TEST_F (TestPlasmaStore, MultipleGetTest) {
108102 ObjectID object_id1 = ObjectID::from_random ();
109103 ObjectID object_id2 = ObjectID::from_random ();
110104 ObjectID object_ids[2 ] = {object_id1, object_id2};
@@ -114,18 +108,15 @@ TEST(PlasmaClient, MultipleGetTest) {
114108 uint8_t metadata[] = {5 };
115109 int64_t metadata_size = sizeof (metadata);
116110 uint8_t * data;
117- ARROW_CHECK_OK (client .Create (object_id1, data_size, metadata, metadata_size, &data));
111+ ARROW_CHECK_OK (client_ .Create (object_id1, data_size, metadata, metadata_size, &data));
118112 data[0 ] = 1 ;
119- ARROW_CHECK_OK (client .Seal (object_id1));
113+ ARROW_CHECK_OK (client_ .Seal (object_id1));
120114
121- ARROW_CHECK_OK (client .Create (object_id2, data_size, metadata, metadata_size, &data));
115+ ARROW_CHECK_OK (client_ .Create (object_id2, data_size, metadata, metadata_size, &data));
122116 data[0 ] = 2 ;
123- ARROW_CHECK_OK (client .Seal (object_id2));
117+ ARROW_CHECK_OK (client_ .Seal (object_id2));
124118
125- ARROW_CHECK_OK (client .Get (object_ids, 2 , -1 , object_buffer));
119+ ARROW_CHECK_OK (client_ .Get (object_ids, 2 , -1 , object_buffer));
126120 ASSERT_EQ (object_buffer[0 ].data [0 ], 1 );
127121 ASSERT_EQ (object_buffer[1 ].data [0 ], 2 );
128-
129- ARROW_CHECK_OK (client.Disconnect ());
130- kill (store, SIGKILL);
131122}
0 commit comments