External, Non-PPA KXStudio Repository
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
3.0KB

  1. #!/bin/bash
  2. set -e
  3. if [ "$(cat debian/control | grep 'Package: ' | wc -l)" -eq 1 ]; then
  4. PKG_NAME=$(cat debian/control | awk 'sub("Package: ","")')
  5. else
  6. PKG_NAME=${PKG_NAME:=tmp}
  7. fi
  8. if [ ! -d debian/${PKG_NAME} ]; then
  9. echo "package is not installed, abort!"
  10. exit 1
  11. fi
  12. if [ -d debian/${PKG_NAME}/usr/local/lib ]; then
  13. echo "error: files are installed in /usr/local"
  14. exit 1
  15. fi
  16. if [ -d debian/${PKG_NAME}/usr/lib/x86_64-linux-gnu ]; then
  17. echo "error: files are installed in multi-arch lib dir"
  18. exit 1
  19. fi
  20. CARLA_BRIDGE_NATIVE_BIN=/opt/kxstudio/lib/carla/carla-bridge-native
  21. CARLA_DISCOVERY_NATIVE_BIN=/opt/kxstudio/lib/carla/carla-discovery-native
  22. VALRIND_BIN="valgrind --error-exitcode=255 --leak-check=full --track-origins=yes --suppressions=$(dirname ${0})/kxstudio-audio-plugin.supp ${VALGRIND_EXTRA_ARGS}"
  23. VALRIND_DISCOVERY_BIN="${VALRIND_BIN} ${CARLA_DISCOVERY_NATIVE_BIN}"
  24. # skip main valgrind test on armhf, incomplete syscall support
  25. if [ "${DEB_HOST_ARCH}" != "armhf" ]; then
  26. VALRIND_BRIDGE_BIN="${VALRIND_BIN} ${CARLA_BRIDGE_NATIVE_BIN}"
  27. else
  28. VALRIND_BRIDGE_BIN="${CARLA_BRIDGE_NATIVE_BIN}"
  29. fi
  30. export CARLA_BRIDGE_DUMMY=1
  31. export CARLA_BRIDGE_TESTING=native
  32. export LV2_PATH=$(pwd)/debian/${PKG_NAME}/usr/lib/lv2:/tmp/lv2-spec
  33. rm -rf /tmp/lv2-spec
  34. mkdir /tmp/lv2-spec
  35. cp -r /usr/lib/lv2/{atom,buf-size,core,data-access,instance-access,midi,parameters,port-groups,port-props,options,patch,presets,resize-port,state,time,ui,units,urid,worker}.lv2 /tmp/lv2-spec/
  36. if [ -d debian/${PKG_NAME}/usr/lib/lv2 ]; then
  37. pushd debian/${PKG_NAME}/usr/lib/lv2
  38. lv2_validate */*.ttl
  39. if [ -z "${LV2LINT_SKIP}" ]; then
  40. lv2lint ${LV2LINT_EXTRA_FLAGS} -s lv2_generate_ttl $(lv2ls)
  41. fi
  42. for p in $(ls); do
  43. ${VALRIND_DISCOVERY_BIN} lv2 ./${p}
  44. done
  45. for p in $(lv2ls); do
  46. ${VALRIND_BRIDGE_BIN} lv2 "" ${p} 1>/dev/null;
  47. done
  48. popd
  49. fi
  50. if [ -d debian/${PKG_NAME}/usr/lib/ladspa ]; then
  51. pushd debian/${PKG_NAME}/usr/lib/ladspa
  52. for p in $(ls); do
  53. ${VALRIND_DISCOVERY_BIN} ladspa ./${p}
  54. ${VALRIND_BRIDGE_BIN} ladspa ./${p} "" 1>/dev/null;
  55. done
  56. popd
  57. fi
  58. if [ -d debian/${PKG_NAME}/usr/lib/dssi ]; then
  59. pushd debian/${PKG_NAME}/usr/lib/dssi
  60. for p in $(ls); do
  61. ${VALRIND_DISCOVERY_BIN} dssi ./${p}
  62. ${VALRIND_BRIDGE_BIN} dssi ./${p} "" 1>/dev/null;
  63. done
  64. popd
  65. fi
  66. if [ -d debian/${PKG_NAME}/usr/lib/vst ]; then
  67. pushd debian/${PKG_NAME}/usr/lib/vst
  68. for p in $(ls .so */*.so 2>/dev/null | grep -e '.*\.so' -e '.*\.vst/.*\.so' | grep -v 'lib.*\.so' | grep -v 'carla-bridge-lv2.so'); do
  69. ${VALRIND_DISCOVERY_BIN} vst2 ./${p}
  70. ${VALRIND_BRIDGE_BIN} vst2 ./${p} "" 1>/dev/null;
  71. done
  72. popd
  73. fi
  74. # TODO wait until carla supports vst3 natively
  75. # if [ -d debian/${PKG_NAME}/usr/lib/vst3 ]; then
  76. # pushd debian/${PKG_NAME}/usr/lib/vst3
  77. # for p in $(ls); do
  78. # ${VALRIND_DISCOVERY_BIN} vst3 ./${p}
  79. # ${VALRIND_BRIDGE_BIN} vst3 ./${p} "" 1>/dev/null;
  80. # done
  81. # popd
  82. # fi