コード例 #1
0
ファイル: testmod_yajl.c プロジェクト: reox/libelektra
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);
}
コード例 #2
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;
}
コード例 #3
0
ファイル: testmod_yajl.c プロジェクト: reox/libelektra
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);
}