memory_leak_test.sh 848 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/bin/bash
  2. cd $(dirname $0)
  3. set -ex
  4. PORT=12345
  5. TIMEOUT=10
  6. ./compile_extension.sh
  7. run_test() {
  8. echo
  9. echo "Running memory leak test, args: $@"
  10. EXTRA_ARGS=""
  11. ARGS="-d xdebug.profiler_enable=0 -d display_errors=on -dextension=../ext/google/protobuf/modules/protobuf.so"
  12. for i in "$@"; do
  13. case $i in
  14. --keep_descriptors)
  15. EXTRA_ARGS=-dprotobuf.keep_descriptor_pool_after_request=1
  16. shift
  17. ;;
  18. esac
  19. done
  20. export ZEND_DONT_UNLOAD_MODULES=1
  21. export USE_ZEND_ALLOC=0
  22. if valgrind --error-exitcode=1 --leak-check=full --show-leak-kinds=all --errors-for-leak-kinds=all --suppressions=valgrind.supp --num-callers=100 php $ARGS $EXTRA_ARGS memory_leak_test.php; then
  23. echo "Memory leak test SUCCEEDED"
  24. else
  25. echo "Memory leak test FAILED"
  26. exit 1
  27. fi
  28. }
  29. run_test
  30. run_test --keep_descriptors