1
0

test-versioning.sh 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #!/bin/sh
  2. # Copyright 2022 Collabora Ltd.
  3. # SPDX-License-Identifier: Zlib
  4. set -eu
  5. cd `dirname $0`/..
  6. # Needed so sed doesn't report illegal byte sequences on macOS
  7. export LC_CTYPE=C
  8. header=src/physfs.h
  9. ref_major=$(sed -ne 's/^#define PHYSFS_VER_MAJOR *//p' $header)
  10. ref_minor=$(sed -ne 's/^#define PHYSFS_VER_MINOR *//p' $header)
  11. ref_micro=$(sed -ne 's/^#define PHYSFS_VER_PATCH *//p' $header)
  12. ref_version="${ref_major}.${ref_minor}.${ref_micro}"
  13. tests=0
  14. failed=0
  15. ok () {
  16. tests=$(( tests + 1 ))
  17. echo "ok - $*"
  18. }
  19. not_ok () {
  20. tests=$(( tests + 1 ))
  21. echo "not ok - $*"
  22. failed=1
  23. }
  24. version=$(sed -ne 's/^set(PHYSFS_VERSION \([0-9.]*\))$/\1/p' CMakeLists.txt)
  25. if [ "$ref_version" = "$version" ]; then
  26. ok "CMakeLists.txt $version"
  27. else
  28. not_ok "CMakeLists.txt $version disagrees with physfs.h $ref_version"
  29. fi
  30. version=$(sed -ne 's/^VERSION = \([0-9.]*\)$/\1/p' src/Makefile.os2)
  31. if [ "$ref_version" = "$version" ]; then
  32. ok "src/Makefile.os $version"
  33. else
  34. not_ok "src/Makefile.os $version disagrees with physfs.h $ref_version"
  35. fi
  36. for rcfile in src/physfs_version.rc; do
  37. tuple=$(sed -ne 's/^ *FILEVERSION *//p' "$rcfile" | tr -d '\r')
  38. ref_tuple="${ref_major},${ref_minor},${ref_micro},0"
  39. if [ "$ref_tuple" = "$tuple" ]; then
  40. ok "$rcfile FILEVERSION $tuple"
  41. else
  42. not_ok "$rcfile FILEVERSION $tuple disagrees with physfs.h $ref_tuple"
  43. fi
  44. tuple=$(sed -ne 's/^ *PRODUCTVERSION *//p' "$rcfile" | tr -d '\r')
  45. if [ "$ref_tuple" = "$tuple" ]; then
  46. ok "$rcfile PRODUCTVERSION $tuple"
  47. else
  48. not_ok "$rcfile PRODUCTVERSION $tuple disagrees with physfs.h $ref_tuple"
  49. fi
  50. tuple=$(sed -Ene 's/^ *VALUE "FileVersion", "([0-9, ]*)\\0"\r?$/\1/p' "$rcfile" | tr -d '\r')
  51. ref_tuple="${ref_major}, ${ref_minor}, ${ref_micro}, 0"
  52. if [ "$ref_tuple" = "$tuple" ]; then
  53. ok "$rcfile FileVersion $tuple"
  54. else
  55. not_ok "$rcfile FileVersion $tuple disagrees with physfs.h $ref_tuple"
  56. fi
  57. tuple=$(sed -Ene 's/^ *VALUE "ProductVersion", "([0-9, ]*)\\0"\r?$/\1/p' "$rcfile" | tr -d '\r')
  58. if [ "$ref_tuple" = "$tuple" ]; then
  59. ok "$rcfile ProductVersion $tuple"
  60. else
  61. not_ok "$rcfile ProductVersion $tuple disagrees with physfs.h $ref_tuple"
  62. fi
  63. done
  64. echo "1..$tests"
  65. exit "$failed"