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;
}
Example #2
0
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);
}