From 4602d25d627f2bb6ff2ac03767c75da051e12218 Mon Sep 17 00:00:00 2001 From: Joseph Snyder Date: Mon, 7 Oct 2024 11:12:09 -0400 Subject: [PATCH] WIP: Add test for submission validation --- app/cdash/include/ctestparser.php | 4 +- app/cdash/tests/CMakeLists.txt | 3 ++ app/cdash/tests/test_submissionvalidation.php | 48 +++++++++++++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 app/cdash/tests/test_submissionvalidation.php diff --git a/app/cdash/include/ctestparser.php b/app/cdash/include/ctestparser.php index acac3e362..72bb2579e 100644 --- a/app/cdash/include/ctestparser.php +++ b/app/cdash/include/ctestparser.php @@ -183,9 +183,11 @@ function ctest_parse($filehandle, string $filename, $projectid, $expected_md5 = $schema_file = $xml_info['xml_schema']; // If validation is enabled and if this file has a corresponding schema, validate it + \Log::critical(((bool) config('cdash.validate_xml_submissions'))); + \Log::critical($schema_file); if (((bool) config('cdash.validate_xml_submissions')) === true && isset($schema_file)) { try { - SubmissionUtils::validate_xml(storage_path("app/".$filename), $schema_file); + SubmissionUtils::validate_xml($filename, $schema_file); } catch (CDashXMLValidationException $e) { foreach ($e->getDecodedMessage() as $error) { Log::error("Validating $filename: ".$error); diff --git a/app/cdash/tests/CMakeLists.txt b/app/cdash/tests/CMakeLists.txt index fbfd7e01f..ca29b3988 100644 --- a/app/cdash/tests/CMakeLists.txt +++ b/app/cdash/tests/CMakeLists.txt @@ -607,5 +607,8 @@ set_tests_properties(/Feature/RemoteWorkers PROPERTIES DEPENDS install_3) add_laravel_test(/Unit/app/Console/Command/ValidateXmlCommandTest) +add_php_test(submissionvalidation) +set_tests_properties(submissionvalidation PROPERTIES DEPENDS install_3) + add_subdirectory(ctest) add_subdirectory(autoremovebuilds) diff --git a/app/cdash/tests/test_submissionvalidation.php b/app/cdash/tests/test_submissionvalidation.php new file mode 100644 index 000000000..01aebb9b3 --- /dev/null +++ b/app/cdash/tests/test_submissionvalidation.php @@ -0,0 +1,48 @@ +submission('InsightExample', $file)); + if (false) { + return false; + } + + $this->assertTrue(true, "Submission of $file has succeeded"); + } + + public function testSubmissionValidation() + { + + $this->ConfigFile = dirname(__FILE__) . '/../../../.env'; + $this->Original = file_get_contents($this->ConfigFile); + #print_r($this->Original); + file_put_contents($this->ConfigFile, "VALIDATE_XML_SUBMISSIONS=true\n", FILE_APPEND | LOCK_EX); + + + $this->submit("invalid_Configure.xml"); + # $this->submit("valid_Build.xml"); + + + file_put_contents($this->ConfigFile, $this->Original); + } +} \ No newline at end of file