92 lines
3.0 KiB
C
92 lines
3.0 KiB
C
#include "test_multiprocessing.h"
|
|
#include "multiprocessing.h"
|
|
#include "config.h"
|
|
#include "queue.h"
|
|
#include "utils.h"
|
|
#include "test_utils.h"
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
static void test_pipeline_context_sender_create_destroy() {
|
|
Config* cfg = config_create(str_dup(PROTOCOL_VERSION), str_dup("/tmp"), str_dup("/tmp"), false,
|
|
false, false, false, false, 0, false, 0);
|
|
EXPECT_NOT_NULL(cfg);
|
|
|
|
Queue* q_scanner = queue_create(10, free);
|
|
EXPECT_NOT_NULL(q_scanner);
|
|
|
|
Queue* q_loader = queue_create(10, free);
|
|
EXPECT_NOT_NULL(q_loader);
|
|
|
|
PipelineContextSender* ctx = pipeline_context_sender_create(cfg, q_scanner, q_loader);
|
|
EXPECT_NOT_NULL(ctx);
|
|
EXPECT_EQ_INT(ctx->scanner_done, false);
|
|
EXPECT_EQ_INT(ctx->loader_done, false);
|
|
EXPECT_NULL(ctx->manifest);
|
|
|
|
pipeline_context_sender_destroy(ctx);
|
|
// cfg, q_scanner, q_loader are destroyed by pipeline_context_sender_destroy
|
|
}
|
|
|
|
static void test_pipeline_context_sender_create_null_config() {
|
|
// Passing NULL config to pipeline_context_sender_create - it will be used
|
|
// and destroyed, so this should be tested carefully.
|
|
Queue* q_scanner = queue_create(10, free);
|
|
EXPECT_NOT_NULL(q_scanner);
|
|
Queue* q_loader = queue_create(10, free);
|
|
EXPECT_NOT_NULL(q_loader);
|
|
|
|
PipelineContextSender* ctx = pipeline_context_sender_create(NULL, q_scanner, q_loader);
|
|
EXPECT_NOT_NULL(ctx);
|
|
EXPECT_NULL(ctx->config);
|
|
|
|
// Destroy without config - config_delete(NULL) should be safe
|
|
pipeline_context_sender_destroy(ctx);
|
|
}
|
|
|
|
static void test_pipeline_context_sender_destroy_null() {
|
|
pipeline_context_sender_destroy(NULL);
|
|
}
|
|
|
|
static void test_pipeline_context_receiver_create_destroy() {
|
|
Config* cfg = config_create(str_dup(PROTOCOL_VERSION), str_dup("/tmp"), str_dup("/tmp"), false,
|
|
false, false, false, false, 0, false, 0);
|
|
EXPECT_NOT_NULL(cfg);
|
|
|
|
Queue* q = queue_create(10, free);
|
|
EXPECT_NOT_NULL(q);
|
|
|
|
PipelineContextReceiver* ctx = pipeline_context_receiver_create(cfg, q, 42);
|
|
EXPECT_NOT_NULL(ctx);
|
|
EXPECT_EQ_INT(ctx->file_descriptor, 42);
|
|
EXPECT_EQ_INT(ctx->receiver_done, false);
|
|
|
|
pipeline_context_receiver_destroy(ctx);
|
|
// cfg, q are destroyed by pipeline_context_receiver_destroy
|
|
}
|
|
|
|
static void test_pipeline_context_receiver_create_null_config() {
|
|
Queue* q = queue_create(10, free);
|
|
EXPECT_NOT_NULL(q);
|
|
|
|
PipelineContextReceiver* ctx = pipeline_context_receiver_create(NULL, q, -1);
|
|
EXPECT_NOT_NULL(ctx);
|
|
EXPECT_NULL(ctx->config);
|
|
EXPECT_EQ_INT(ctx->file_descriptor, -1);
|
|
|
|
pipeline_context_receiver_destroy(ctx);
|
|
}
|
|
|
|
static void test_pipeline_context_receiver_destroy_null() {
|
|
pipeline_context_receiver_destroy(NULL);
|
|
}
|
|
|
|
void test_multiprocessing() {
|
|
test_pipeline_context_sender_create_destroy();
|
|
test_pipeline_context_sender_create_null_config();
|
|
test_pipeline_context_sender_destroy_null();
|
|
test_pipeline_context_receiver_create_destroy();
|
|
test_pipeline_context_receiver_create_null_config();
|
|
test_pipeline_context_receiver_destroy_null();
|
|
}
|