Project

General

Profile

Download (1.9 KB) Statistics
| Branch: | Tag: | Revision:
1
# # Macros used to compile a lustre library
2
# include(CMakeParseArguments)
3
# function(Compare_ref_zustre)
4
#   set(options "")
5
#   set(oneValueArgs  REF GEN)
6

    
7
  # Projecting ref to status and tail
8
execute_process(COMMAND bash -c "cat ${REF} | grep Answer | awk '{$1=$1};1' |xargs" OUTPUT_VARIABLE REFSTATUS RESULT_VARIABLE CMD_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
9
if(CMD_RESULT)
10
  message(FATAL_ERROR "Error extracting reference status from ${REF}")
11
endif()
12
execute_process(COMMAND bash -c "tail -n +8 ${REF} > ${L}_ref_tail.xml" RESULT_VARIABLE CMD_RESULT)
13
if(CMD_RESULT)
14
  message(FATAL_ERROR "Error extracting tail from ${REF}")
15
endif()
16

    
17
# Projecting gen to status and tail
18
execute_process(COMMAND bash -c "cat ${GEN} | grep Answer | awk '{$1=$1};1'" OUTPUT_VARIABLE GENSTATUS RESULT_VARIABLE CMD_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
19
if(CMD_RESULT)
20
  message(FATAL_ERROR "Error extracting generated XML status from ${GEN}")
21
endif()
22
execute_process(COMMAND bash -c "tail -n +8 ${REF} > ${L}_gen_tail.xml" RESULT_VARIABLE CMD_RESULT)
23
if(CMD_RESULT)
24
  message(FATAL_ERROR "Error extracting tail from ${GEN}")
25
endif()
26

    
27
# Comparing status
28

    
29

    
30
if(REFSTATUS MATCHES "SAFE" AND GENSTATUS MATCHES "SAFE")
31
  message(STATUS "Coherent SAFE output")
32
elseif(REFSTATUS MATCHES "TIMEOUT" AND GENSTATUS MATCHES "TIMEOUT")
33
  message(STATUS "The frustrating Timeout status is stable")
34
elseif(REFSTATUS MATCHES "TIMEOUT" AND NOT(GENSTATUS MATCHES "TIMEOUT"))
35
  message(WARNING "Timeout status evolved to ${GENSTATUS}")
36
elseif(REFSTATUS MATCHES "CEX" AND GENSTATUS MATCHES "CEX")
37
  message(STATUS "Coherent CEX output")
38
  execute_process(COMMAND ${CMAKE_COMMAND} -E compare_files
39
    ${L}_ref_tail.xml ${L}_gen_tail.xml
40
    RESULT_VARIABLE CMD_RESULT)
41
  if(CMD_RESULT)
42
    message(FATAL_ERROR "CEXs are not identical")
43
  endif()
44
else()
45
  message(FATAL_ERROR "Status mismatch: ${REFSTATUS}(ref) vs ${GENSTATUS}(gen)") 
46
endif()
47

    
48
#endfunction(Compare_ref_zustre)
49

    
(6-6/10)