From 3c8a37a05f86b0c356d86dbc8a9dee686745482a Mon Sep 17 00:00:00 2001 From: ochafik Date: Thu, 21 Mar 2024 18:45:46 +0000 Subject: [PATCH] json: only attempt python & node schema conversion tests if their bins are present Tests introduced in https://github.com/ggerganov/llama.cpp/pull/5978 disabled in https://github.com/ggerganov/llama.cpp/pull/6198 --- tests/test-json-schema-to-grammar.cpp | 34 +++++++++++++++++---------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/tests/test-json-schema-to-grammar.cpp b/tests/test-json-schema-to-grammar.cpp index 3c40e7563c479..f8488bab3740e 100755 --- a/tests/test-json-schema-to-grammar.cpp +++ b/tests/test-json-schema-to-grammar.cpp @@ -803,18 +803,28 @@ int main() { tc.verify_status(FAILURE); } }); - //test_all("Python", [](const TestCase & tc) { - // write("test-json-schema-input.tmp", tc.schema); - // tc.verify_status(std::system( - // "python ./examples/json-schema-to-grammar.py test-json-schema-input.tmp > test-grammar-output.tmp") == 0 ? SUCCESS : FAILURE); - // tc.verify(read("test-grammar-output.tmp")); - //}); - //test_all("JavaScript", [](const TestCase & tc) { - // write("test-json-schema-input.tmp", tc.schema); - // tc.verify_status(std::system( - // "node ./tests/run-json-schema-to-grammar.mjs test-json-schema-input.tmp > test-grammar-output.tmp") == 0 ? SUCCESS : FAILURE); - // tc.verify(read("test-grammar-output.tmp")); - //}); + + if (std::system("python --version") == 0) { + test_all("Python", [](const TestCase & tc) { + write("test-json-schema-input.tmp", tc.schema); + tc.verify_status(std::system( + "python ./examples/json-schema-to-grammar.py test-json-schema-input.tmp > test-grammar-output.tmp") == 0 ? SUCCESS : FAILURE); + tc.verify(read("test-grammar-output.tmp")); + }); + } else { + fprintf(stderr, "#\n# WARNING: Python not found, skipping Python JSON schema -> grammar tests!\n#\n"); + } + + if (std::system("node --version") == 0) { + test_all("JavaScript", [](const TestCase & tc) { + write("test-json-schema-input.tmp", tc.schema); + tc.verify_status(std::system( + "node ./tests/run-json-schema-to-grammar.mjs test-json-schema-input.tmp > test-grammar-output.tmp") == 0 ? SUCCESS : FAILURE); + tc.verify(read("test-grammar-output.tmp")); + }); + } else { + fprintf(stderr, "#\n# WARNING: Node not found, skipping JavaScript JSON schema -> grammar tests!\n#\n"); + } test_all("Check Expectations Validity", [](const TestCase & tc) { if (tc.expected_status == SUCCESS) {