void test_writing (void) { KeySet * conf = ksNew (0, KS_END); Key * parentKey = keyNew ("user/tests/yajl", KEY_VALUE, "/proc/self/fd/1", KEY_END); Plugin * plugin = elektraPluginOpen ("yajl", modules, conf, 0); exit_if_fail (plugin != 0, "could not open plugin"); KeySet * ks = getNullKeys (); /* output_keyset(ks); succeed_if(plugin->kdbSet(plugin, ks, parentKey) == 1, "kdbSet was not successful"); succeed_if(plugin->kdbSet(plugin, getBooleanKeys(), parentKey) == 1, "kdbSet was not successful"); succeed_if(plugin->kdbSet(plugin, getNumberKeys(), parentKey) == 1, "kdbSet was not successful"); succeed_if(plugin->kdbSet(plugin, getStringKeys(), parentKey) == 1, "kdbSet was not successful"); succeed_if(plugin->kdbSet(plugin, getMapKeys(), parentKey) == 1, "kdbSet was not successful"); succeed_if(plugin->kdbSet(plugin, getArrayKeys(), parentKey) == 1, "kdbSet was not successful"); ksDel(ks); ks = getOpenICCKeys(); succeed_if(plugin->kdbSet(plugin, ks, parentKey) == 1, "kdbSet was not successful"); */ ksDel (ks); keyDel (parentKey); elektraPluginClose (plugin, 0); }
int main (int argc, char ** argv) { printf ("YAJL TESTS\n"); printf ("==================\n\n"); modules = ksNew (0, KS_END); elektraModulesInit (modules, 0); init (argc, argv); test_nextNotBelow (); test_reverseLevel (); test_countLevel (); test_writing (); test_json ("yajl/testdata_null.json", getNullKeys (), ksNew (0, KS_END)); test_json ("yajl/testdata_boolean.json", getBooleanKeys (), ksNew (0, KS_END)); test_json ("yajl/testdata_number.json", getNumberKeys (), ksNew (0, KS_END)); test_json ("yajl/testdata_string.json", getStringKeys (), ksNew (0, KS_END)); test_json ("yajl/testdata_maps.json", getMapKeys (), ksNew (0, KS_END)); test_json ("yajl/testdata_array.json", getArrayKeys (), ksNew (0, KS_END)); test_json ("yajl/testdata_below.json", getBelowKeys (), ksNew (0, KS_END)); test_json ("yajl/OpenICC_device_config_DB.json", getOpenICCKeys (), ksNew (0, KS_END)); // TODO currently do not have a KeySet, wait for C-plugin to make // it easy to generate it.. test_readWrite ("yajl/empty_object.json", ksNew (0, KS_END)); test_readWrite ("yajl/empty_array.json", ksNew (0, KS_END)); test_readWrite ("yajl/top_level_string.json", ksNew (0, KS_END)); test_readWrite ("yajl/top_level_integer.json", ksNew (0, KS_END)); test_readWrite ("yajl/rfc_object.json", ksNew (0, KS_END)); test_readWrite ("yajl/rfc_array.json", ksNew (0, KS_END)); test_readWrite ("yajl/testdata_array_mixed.json", ksNew (0, KS_END)); test_readWrite ("yajl/testdata_array_in_array.json", ksNew (0, KS_END)); test_readWrite ("yajl/testdata_array_in_array_anon_map.json", ksNew (0, KS_END)); test_readWrite ("yajl/testdata_array_nested.json", ksNew (0, KS_END)); test_readWrite ("yajl/testdata_array_broken.json", ksNew (0, KS_END)); test_readWrite ("yajl/testdata_array_special_ending.json", ksNew (0, KS_END)); test_readWrite ("yajl/testdata_array_outside.json", ksNew (0, KS_END)); test_readWrite ("yajl/keyframes_complex.json", ksNew (0, KS_END)); test_readWrite ("yajl/testdata_array_mixed2.json", ksNew (0, KS_END)); test_readWrite ("yajl/testdata_array_special_start.json", ksNew (0, KS_END)); test_readWrite ("yajl/testdata_array_mixed3.json", ksNew (0, KS_END)); test_readWrite ("yajl/testdata_empty_in_array.json", ksNew (0, KS_END)); test_readWrite ("yajl/testdata_empty_in_map.json", ksNew (0, KS_END)); test_readWrite ("yajl/testdata_empty_in_array1.json", ksNew (0, KS_END)); test_readWrite ("yajl/testdata_empty_in_map2.json", ksNew (0, KS_END)); test_readWrite ("yajl/testdata_empty_in_map1.json", ksNew (0, KS_END)); elektraModulesClose (modules, 0); ksDel (modules); print_result ("test_yajl"); return nbError; }
void test_nextNotBelow (void) { printf ("Test next not below\n"); KeySet * ks = getNullKeys (); ksRewind (ks); Key * k = elektraNextNotBelow (ks); succeed_if_equal (keyName (k), "user/tests/yajl/nullkey"); succeed_if_equal (keyName (ksCurrent (ks)), "user/tests/yajl/nullkey"); k = elektraNextNotBelow (ks); succeed_if_equal (keyName (k), "user/tests/yajl/second_nullkey"); succeed_if_equal (keyName (ksCurrent (ks)), "user/tests/yajl/second_nullkey"); k = elektraNextNotBelow (ks); succeed_if (k == 0, "not at end of keyset"); succeed_if (ksCurrent (ks) == 0, "not at end of keyset"); ksDel (ks); ks = getBooleanKeys (); ksRewind (ks); k = elektraNextNotBelow (ks); succeed_if_equal (keyName (k), "user/tests/yajl/boolean_key"); succeed_if_equal (keyName (ksCurrent (ks)), "user/tests/yajl/boolean_key"); k = elektraNextNotBelow (ks); succeed_if_equal (keyName (k), "user/tests/yajl/second_boolean_key"); succeed_if_equal (keyName (ksCurrent (ks)), "user/tests/yajl/second_boolean_key"); k = elektraNextNotBelow (ks); succeed_if (k == 0, "not at end of keyset"); succeed_if (ksCurrent (ks) == 0, "not at end of keyset"); ksDel (ks); ks = getBelowKeys (); ksRewind (ks); k = elektraNextNotBelow (ks); succeed_if_equal (keyName (k), "user/tests/yajl/fancy/path/below/v/y/z"); succeed_if_equal (keyName (ksCurrent (ks)), "user/tests/yajl/fancy/path/below/v/y/z"); k = elektraNextNotBelow (ks); succeed_if_equal (keyName (k), "user/tests/yajl/fancy/path/below/x/y/z"); succeed_if_equal (keyName (ksCurrent (ks)), "user/tests/yajl/fancy/path/below/x/y/z"); k = elektraNextNotBelow (ks); succeed_if (k == 0, "not at end of keyset"); succeed_if (ksCurrent (ks) == 0, "not at end of keyset"); ksDel (ks); ks = getMapKeys (); ksRewind (ks); k = elektraNextNotBelow (ks); succeed_if_equal (keyName (k), "user/tests/yajl/map/nested_map/second_string_key"); succeed_if_equal (keyName (ksCurrent (ks)), "user/tests/yajl/map/nested_map/second_string_key"); ksDel (ks); }