Files
looper/client/tests/test_plugins.c

71 lines
1.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include <stdio.h>
#include "plugins.h"
static int tests_passed = 0;
static int tests_failed = 0;
#define ASSERT_EQ(expected, actual, msg) do { \
if ((expected) != (actual)) { \
fprintf(stderr, "FAIL: %s (expected %d, got %d)\n", msg, (int)(expected), (int)(actual)); \
tests_failed++; \
} else { \
printf("PASS: %s\n", msg); \
tests_passed++; \
} \
} while(0)
static void test_plugin_load_null_binary(void)
{
int id = -999;
int ret = plugin_load(NULL, "someplugin", &id);
ASSERT_EQ(-1, ret, "plugin_load(NULL, ...) returns -1");
}
static void test_plugin_load_nonnull_binary(void)
{
int id = -999;
int ret = plugin_load("/path/to/plugin.so", NULL, &id);
ASSERT_EQ(-1, ret, "plugin_load(nonNULL binary, ...) returns -1");
}
static void test_plugin_unload_invalid_id(void)
{
int ret = plugin_unload(-1);
ASSERT_EQ(-1, ret, "plugin_unload(-1) returns -1");
}
static void test_plugin_connect_invalid_id(void)
{
int ret = plugin_connect(-1, "out", "looper:in");
ASSERT_EQ(-1, ret, "plugin_connect(-1, ...) returns -1");
}
static void test_plugin_disconnect(void)
{
int ret = plugin_disconnect("from_port", "to_port");
ASSERT_EQ(0, ret, "plugin_disconnect(...) returns 0");
}
static void test_plugin_set_bypass_invalid(void)
{
/* set_bypass returns void; just make sure it doesn't crash */
plugin_set_bypass(-1, true);
printf("PASS: plugin_set_bypass(-1, true) did not crash\n");
tests_passed++;
}
int main(void)
{
printf("=== Plugin stub unit tests ===\n");
test_plugin_load_null_binary();
test_plugin_load_nonnull_binary();
test_plugin_unload_invalid_id();
test_plugin_connect_invalid_id();
test_plugin_disconnect();
test_plugin_set_bypass_invalid();
printf("\nResults: %d passed, %d failed\n", tests_passed, tests_failed);
return tests_failed > 0 ? 1 : 0;
}