Commit e261327a authored by Greg Williams's avatar Greg Williams
Browse files

Added data integrity checking to stress tests

parent 3e8e3971
Loading
Loading
Loading
Loading
+23 −1
Original line number Diff line number Diff line
@@ -209,6 +209,19 @@ void run_throughput_tests(KineticClient * client, size_t num_ops, size_t value_s
            }
        }

        // Check data for integrity
        size_t numFailures = 0;
        for (size_t i = 0; i < num_ops; i++) {
            int res = memcmp(test_data.array.data, test_get_datas[i].array.data, test_data.array.len);
            if (res != 0) {
                LOGF0("Failed validating data in object %zu of %zu!", i+1, num_ops);
                numFailures++;
            }
        }
        TEST_ASSERT_EQUAL_MESSAGE(0, numFailures, "DATA INTEGRITY CHECK FAILED UPON READBACK!");
        LOG0("Data integrity check passed!");

        // Calculate and report performance
        struct timeval stop_time;
        gettimeofday(&stop_time, NULL);
        int64_t elapsed_us = ((stop_time.tv_sec - start_time.tv_sec) * 1000000)
@@ -356,13 +369,22 @@ void run_tests(KineticClient * client)
void test_kinetic_client_throughput_for_small_sized_objects(void)
{
    srand(time(NULL));
    for (uint32_t i = 0; i < 2; i++) {
    const uint32_t max_runs = 2;

    for (uint32_t i = 0; i < max_runs; i++) {
        LOG0( "============================================================================================");
        LOGF0("==  Test run %u of %u", i+1, max_runs);
        LOG0( "============================================================================================");

        KineticClientConfig config = {
            .logFile = "stdout",
            .logLevel = 0,
        };

        KineticClient * client = KineticClient_Init(&config);

        run_tests(client);

        KineticClient_Shutdown(client);
    }
}
+28 −13
Original line number Diff line number Diff line
@@ -180,6 +180,18 @@ void run_throughput_tests(KineticSession* session, size_t num_ops, size_t value_
            }
        }

        // Check data for integrity
        size_t numFailures = 0;
        for (size_t i = 0; i < num_ops; i++) {
            int res = memcmp(test_data.array.data, test_get_datas[i].array.data, test_data.array.len);
            if (res != 0) {
                LOGF0("Failed validating data in object %zu of %zu!", i+1, num_ops);
                numFailures++;
            }
        }
        TEST_ASSERT_EQUAL_MESSAGE(0, numFailures, "DATA INTEGRITY CHECK FAILED UPON READBACK!");
        LOG0("Data integrity check passed!");

        // Calculate and report performance
        struct timeval stop_time;
        gettimeofday(&stop_time, NULL);
@@ -337,30 +349,33 @@ void run_tests(KineticClient * client)
    KineticClient_DestroyConnection(&session);
}


void test_kinetic_client_throughput_for_small_sized_objects(void)
void test_kinetic_client_throughput_test_kinetic_client_throughput_(void)
{
    srand(time(NULL));
    const uint32_t max_runs = 2;

    for (uint32_t i = 0; i < max_runs; i++) {
        LOG0( "============================================================================================");
        LOGF0("==  Test run %u of %u", i+1, max_runs);
        LOG0( "============================================================================================");

        KineticClientConfig config = {
            .logFile = "stdout",
            .logLevel = 0,
        // .writerThreads = 1,
        // .readerThreads = 1,
        // .maxThreadpoolThreads = 1,
            .writerThreads = 1,
            .readerThreads = 1,
            .maxThreadpoolThreads = 1,
        };

        KineticClient * client = KineticClient_Init(&config);

    const uint32_t max_runs = 2;
    for (uint32_t i = 0; i < max_runs; i++) {
        LOG0( "============================================================================================");
        LOGF0("==  Test run %u of %u", i+1, max_runs);
        LOG0("============================================================================================");
        run_tests(client);
    }

        KineticClient_Shutdown(client);
    }
    
}

static void op_finished(KineticCompletionData* kinetic_data, void* clientData)
{
    OpStatus * op_status = clientData;