From 405da5f84b072ea97b69359454899f45d92d24b6 Mon Sep 17 00:00:00 2001 From: Albert Cervin Date: Wed, 22 May 2024 00:00:29 +0200 Subject: WIP LSP client This contains the start of an LSP client. Nothing (except starting the LSP server) works at the moment and the feature is disabled by default. --- test/settings.c | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) (limited to 'test/settings.c') diff --git a/test/settings.c b/test/settings.c index 13d0963..1d1f192 100644 --- a/test/settings.c +++ b/test/settings.c @@ -5,22 +5,22 @@ #include "assert.h" #include "test.h" -void test_get() { +void test_get(void) { settings_init(10); settings_set_default( "my.setting", - (struct setting_value){.type = Setting_Bool, .bool_value = false}); + (struct setting_value){.type = Setting_Bool, .data.bool_value = false}); struct setting *s = settings_get("my.setting"); ASSERT(s != NULL, "Expected setting to exist after being inserted"); ASSERT(s->value.type == Setting_Bool, "Expected inserted setting to have the same type when retrieved"); - ASSERT(!s->value.bool_value, + ASSERT(!s->value.data.bool_value, "Expected inserted setting to have the same value when retrieved"); settings_set_default( "other.setting", - (struct setting_value){.type = Setting_Number, .number_value = 28}); + (struct setting_value){.type = Setting_Number, .data.number_value = 28}); struct setting **res = NULL; uint32_t nres = 0; @@ -29,46 +29,48 @@ void test_get() { ASSERT(nres == 1, "Expected to get one result back"); ASSERT(s->value.type == Setting_Bool, "Expected inserted setting to have the " "same type when retrieved by prefix"); - ASSERT(!s->value.bool_value, "Expected inserted setting to have the same " - "value when retrieved by prefix"); + ASSERT(!s->value.data.bool_value, + "Expected inserted setting to have the same " + "value when retrieved by prefix"); free(res); settings_destroy(); } -void test_set() { +void test_set(void) { settings_init(10); settings_set_default( "my.setting", - (struct setting_value){.type = Setting_Bool, .bool_value = false}); + (struct setting_value){.type = Setting_Bool, .data.bool_value = false}); // test that wrong type is ignored; - settings_set("my.setting", (struct setting_value){.type = Setting_String, - .string_value = "bonan"}); + settings_set("my.setting", + (struct setting_value){.type = Setting_String, + .data.string_value = "bonan"}); struct setting *s = settings_get("my.setting"); ASSERT(s != NULL, "Expected setting to exist after being inserted"); ASSERT(s->value.type == Setting_Bool, "Expected inserted setting type to not have been changed"); - ASSERT(!s->value.bool_value, + ASSERT(!s->value.data.bool_value, "Expected inserted setting value to not have been changed"); // test that correct type is indeed changed settings_set("my.setting", (struct setting_value){.type = Setting_Bool, - .bool_value = true}); + .data.bool_value = true}); s = settings_get("my.setting"); ASSERT(s != NULL, "Expected setting to exist"); ASSERT(s->value.type == Setting_Bool, "Expected inserted setting type to not have been changed"); - ASSERT(s->value.bool_value, + ASSERT(s->value.data.bool_value, "Expected inserted setting value to _have_ been changed"); settings_destroy(); } -void test_from_toml_string() { +void test_from_toml_string(void) { char *content = "[ languages.c]\n" "name = \"C\""; @@ -81,13 +83,13 @@ void test_from_toml_string() { ASSERT(setting != NULL, "Expected to be able to retrieve setting after parsed from string"); ASSERT(setting->value.type == Setting_String, "Expected a string setting"); - ASSERT_STR_EQ(setting->value.string_value, "C", + ASSERT_STR_EQ(setting->value.data.string_value, "C", "Expected setting value to be \"C\""); content = "sune = \"wrong"; res = settings_from_string(content, &errmsgs); ASSERT(res >= 1, "Expected (at least) one error from invalid toml"); - for (uint32_t i = 0; i < res; ++i) { + for (uint32_t i = 0; i < (uint32_t)res; ++i) { free(errmsgs[i]); } free(errmsgs); @@ -95,7 +97,7 @@ void test_from_toml_string() { content = "boll = truj"; res = settings_from_string(content, &errmsgs); ASSERT(res >= 1, "Expected (at least) one error from an invalid bool"); - for (uint32_t i = 0; i < res; ++i) { + for (uint32_t i = 0; i < (uint32_t)res; ++i) { free(errmsgs[i]); } free(errmsgs); @@ -109,12 +111,12 @@ void test_from_toml_string() { setting = settings_get("editor.show-whitespace"); ASSERT(setting != NULL, "Expected editor.show-whitespace to be set from TOML"); - ASSERT(setting->value.bool_value, + ASSERT(setting->value.data.bool_value, "Expected editor.show-whitespace to be set to true from TOML"); setting = settings_get("editor.tab-width"); ASSERT(setting != NULL, "Expected editor.tab-width to be set from TOML"); - ASSERT(setting->value.number_value == 3, + ASSERT(setting->value.data.number_value == 3, "Expected editor.tab-width to be set to 3 from TOML"); content = "[languages]\n" @@ -126,7 +128,7 @@ void test_from_toml_string() { setting = settings_get("languages.pang.name"); ASSERT(setting != NULL, "Expected languages.pang.name to be set through inline table"); - ASSERT_STR_EQ(setting->value.string_value, "Bom", + ASSERT_STR_EQ(setting->value.data.string_value, "Bom", "Expected languages.pang.name to be \"Bom\""); content = "multi = \"\"\"This is\n" @@ -135,13 +137,13 @@ void test_from_toml_string() { ASSERT(res == 0, "Expected valid TOML to parse successfully"); setting = settings_get("multi"); ASSERT(setting != NULL, "Expected multi to be set"); - ASSERT_STR_EQ(setting->value.string_value, "This is\na multiline string", + ASSERT_STR_EQ(setting->value.data.string_value, "This is\na multiline string", "Expected newline to have been preserved in multiline string"); settings_destroy(); } -void run_settings_tests() { +void run_settings_tests(void) { run_test(test_get); run_test(test_set); run_test(test_from_toml_string); -- cgit v1.2.3