findHangingTest.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/usr/bin/env bash
  2. ##
  3. # Licensed to the Apache Software Foundation (ASF) under one
  4. # or more contributor license agreements. See the NOTICE file
  5. # distributed with this work for additional information
  6. # regarding copyright ownership. The ASF licenses this file
  7. # to you under the Apache License, Version 2.0 (the
  8. # "License"); you may not use this file except in compliance
  9. # with the License. You may obtain a copy of the License at
  10. #
  11. # http://www.apache.org/licenses/LICENSE-2.0
  12. #
  13. # Unless required by applicable law or agreed to in writing, software
  14. # distributed under the License is distributed on an "AS IS" BASIS,
  15. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16. # See the License for the specific language governing permissions and
  17. # limitations under the License.
  18. ##
  19. # script to find hanging test from Jenkins build output
  20. # usage: ./findHangingTest.sh <url of Jenkins build console>
  21. #
  22. `curl -k -o jenkins.out "$1"`
  23. expecting=Running
  24. cat jenkins.out | while read line; do
  25. if [[ "$line" =~ "Running org.apache.hadoop" ]]; then
  26. if [[ "$expecting" =~ "Running" ]]; then
  27. expecting=Tests
  28. else
  29. echo "Hanging test: $prevLine"
  30. fi
  31. fi
  32. if [[ "$line" =~ "Tests run" ]]; then
  33. expecting=Running
  34. fi
  35. if [[ "$line" =~ "Forking command line" ]]; then
  36. a=$line
  37. else
  38. prevLine=$line
  39. fi
  40. done