forked from JimmySpivey/ATF-for-Vista-FOIA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
UnitTest.cmake.in
44 lines (43 loc) · 2.32 KB
/
UnitTest.cmake.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#---------------------------------------------------------------------------
# Copyright 2011-2012 The Open Source Electronic Health Record Agent
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#---------------------------------------------------------------------------
include(@VISTA_SOURCE_DIR@/CommonFunctions.cmake)
message(STATUS "Collecting Unit Testing Routines...")
file(GLOB UNIT_TEST_FILES "@VISTA_SOURCE_DIR@/UnitTest/VistA-FOIA/Packages/@package_name@/*.m" )
execute_process(COMMAND "@PYTHON_EXECUTABLE@" @OSEHRA_PATH@/Scripts/PackRO.py ${UNIT_TEST_FILES} WORKING_DIRECTORY @VISTA_SOURCE_DIR@ OUTPUT_FILE @RoutineImportFile@)
message(STATUS "Importing Unit Testing Routines...")
execute_process(COMMAND "@PYTHON_EXECUTABLE@" "@SCRIPT_OUTPUT_DIR@/@package_file_name@RoutineImport.py")
execute_process(COMMAND "@PYTHON_EXECUTABLE@" "@SCRIPT_OUTPUT_DIR@/@package_file_name@.py"
RESULT_VARIABLE return ERROR_VARIABLE ERROR)
if(NOT return EQUAL 0)
file(READ @logfile@ contents)
message(FATAL_ERROR "Error running Expect:\nReturn Value = ${return}\n${contents}\n${ERROR}")
endif()
file(STRINGS "@logfile@" OUTPUT)
ReportUnitTestResult(@package_file_name@ @VISTA_SOURCE_DIR@ "${OUTPUT}")
foreach(routine ${UNIT_TEST_FILES})
get_filename_component(routine ${routine} NAME_WE)
if(EXISTS "@VISTA_SOURCE_DIR@/UnitTest/Data/${routine}.log")
file(STRINGS "@VISTA_SOURCE_DIR@/UnitTest/Data/${routine}.log" baseline)
string(REPLACE ";" "" OUTPUT ${OUTPUT})
string(REPLACE "[C" "" OUTPUT ${OUTPUT})
string(REPLACE "[?1h=" "" OUTPUT ${OUTPUT})
string(REPLACE "[?1l>" "" OUTPUT ${OUTPUT})
string(REPLACE "${baseline}" "" newresult ${OUTPUT})
if(${newresult} STREQUAL ${OUTPUT})
message(FATAL_ERROR "Test Report doesn't match the baseline file in: @VISTA_SOURCE_DIR@/UnitTest/Baseline/${routine}.log")
endif()
endif()
endforeach()