test_xml_output.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/usr/bin/env sh
  2. OUTPUT_FILE=test.xml
  3. CK_DEFAULT_TIMEOUT=4
  4. . ./test_vars
  5. . $(dirname $0)/test_output_strings
  6. rm -f ${OUTPUT_FILE}
  7. export CK_DEFAULT_TIMEOUT
  8. ./ex_output${EXEEXT} CK_MINIMAL XML NORMAL > /dev/null
  9. actual_xml=`cat ${OUTPUT_FILE} | tr -d "\r" | grep -v \<duration\> | grep -v \<datetime\> | grep -v \<path\>`
  10. if [ x"${expected_xml}" != x"${actual_xml}" ]; then
  11. echo "Problem with ex_xml_output${EXEEXT}";
  12. echo "Expected:";
  13. echo "${expected_xml}";
  14. echo "Got:";
  15. echo "${actual_xml}";
  16. exit 1;
  17. fi
  18. actual_duration_count=`grep -c \<duration\> ${OUTPUT_FILE}`
  19. if [ x"${expected_duration_count}" != x"${actual_duration_count}" ]; then
  20. echo "Wrong number of <duration> elements in ${OUTPUT_FILE}, ${expected_duration_count} vs ${actual_duration_count}";
  21. exit 1;
  22. fi
  23. num_durations=`grep "\<duration\>" ${OUTPUT_FILE} | wc -l`
  24. i=1
  25. while [ ${i} -le ${num_durations} ]; do
  26. duration=`grep "\<duration\>" ${OUTPUT_FILE} | head -n ${i} | tail -n 1 | cut -d ">" -f 2 | cut -d "<" -f 1`
  27. int_duration=`echo $duration | cut -d "." -f 1`
  28. if [ "${int_duration}" -ne "-1" ] && [ "${int_duration}" -gt "${CK_DEFAULT_TIMEOUT}" ]; then
  29. echo "Problem with duration ${duration}; is not valid. Should be -1 or in [0, ${CK_DEFAULT_TIMEOUT}]"
  30. exit 1
  31. fi
  32. i=$((i+1))
  33. done
  34. if [ ! -z `which xmllint` ]; then
  35. xmllint_output=`xmllint ${OUTPUT_FILE}`
  36. if [ $? -ne 0 ]; then
  37. echo "xmllint found an issue"
  38. echo ${xmllint_output}
  39. exit 1
  40. fi
  41. fi
  42. exit 0