Makefile 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. RUNNER = dep/run/runner.js
  2. TESTS = tests/*.js
  3. HTMLTESTS = tests/*.html
  4. RESULTS = results
  5. PERF = perf
  6. WEB = web
  7. TALOS = talos
  8. PERFSINGLE = perf-single
  9. all: spidermonkey rhino tamarin jscore
  10. talos: web
  11. @@ rm -rf ${TALOS}
  12. @@ mv ${WEB} ${TALOS}
  13. @@ echo "Generating talos tests..."
  14. @@ for i in talos/tests/*.html; do \
  15. TEST=`echo "$${i}" | sed s/.html// | sed s/talos.tests.//`; \
  16. echo "Converting $${TEST} to talos test..."; \
  17. sed "s/<head>/<head><!-- MOZ_INSERT_CONTENT_HOOK --><script>var limitSearch='$${TEST}';<\/script>/" talos/index.html > \
  18. "talos/$${TEST}.html"; \
  19. echo "% $${TEST}.html" >> talos/dromaeo.manifest; \
  20. done
  21. web: ${TESTS}
  22. @@ rm -rf ${WEB}
  23. @@ cp -fR dep/web ${WEB}
  24. @@ mkdir ${WEB}/tests
  25. @@ cp -f tests/MANIFEST.json ${WEB}/tests/MANIFEST.json
  26. @@ for i in ${TESTS}; do \
  27. echo "Converting $${i} to web test..."; \
  28. cat dep/web/test-head.html "$${i}" dep/web/test-tail.html | \
  29. sed "s/startTest.\(.*\).;/startTest\(\1, '`crc32 $${i}`'\);/" | \
  30. sed "s/startTest/window.onload = function(){ startTest/" | \
  31. sed "s/endTest..;/endTest(); };/" > \
  32. ${WEB}/`echo "$${i}"|sed s/.js//`.html; \
  33. done
  34. @@ for i in ${HTMLTESTS}; do \
  35. echo "Converting $${i} to web test..."; \
  36. cat "$${i}" | \
  37. sed "s/startTest.\(.*\).;/startTest\(\1, '`crc32 "$${i}"`'\);/" > ${WEB}"/$${i}"; \
  38. done
  39. perf: ${TESTS}
  40. @@ mkdir -p ${PERF}
  41. @@ cp -f ${RUNNER} ${PERF}/
  42. @@ for i in ${TESTS}; do \
  43. echo "Converting $${i} to perf test..."; \
  44. cat dep/perf/head.html "$${i}" dep/perf/tail.html > \
  45. ${PERF}/`echo "$${i}"|sed s/.js//|sed s/tests.//`.html; \
  46. done
  47. perf-single: ${TESTS}
  48. @@ mkdir -p ${PERFSINGLE}
  49. @@ cp -f ${RUNNER} ${PERFSINGLE}/
  50. @@ echo "Generating single perf tests..."
  51. @@ perl dep/perf/single.pl ${RESULTS}/spidermonkey.txt
  52. results: ${TESTS}
  53. @@ mkdir -p ${RESULTS}
  54. @@ cp -f dep/results/* ${RESULTS}/
  55. @@ mkdir -p ${RESULTS}/spidermonkey
  56. @@ mkdir -p ${RESULTS}/spidermonkey-patch
  57. @@ mkdir -p ${RESULTS}/rhino
  58. @@ mkdir -p ${RESULTS}/tamarin
  59. @@ mkdir -p ${RESULTS}/jscore
  60. spidermonkey: results ${TESTS}
  61. @@ echo "" > ${RESULTS}/spidermonkey.txt
  62. @@ for i in ${TESTS}; do \
  63. echo "Testing $${i} in Spidermonkey"; \
  64. cat ${RUNNER} "$${i}" | ./dep/run/js >> \
  65. ${RESULTS}/spidermonkey.txt; \
  66. done
  67. rhino: results ${TESTS}
  68. @@ echo "" > ${RESULTS}/rhino.txt
  69. @@ for i in ${TESTS}; do \
  70. echo "Testing $${i} in Rhino"; \
  71. cat ${RUNNER} "$${i}" > "$${i}.tmp"; \
  72. java -server -jar dep/run/js.jar -opt 9 "$${i}.tmp" >> \
  73. ${RESULTS}/rhino.txt; \
  74. rm -f "$${i}.tmp"; \
  75. done
  76. tamarin: results ${TESTS}
  77. @@ echo "" > ${RESULTS}/tamarin.txt
  78. @@ for i in ${TESTS}; do \
  79. echo "Testing $${i} in Tamarin"; \
  80. java -jar dep/run/asc.jar -import dep/run/builtin.abc -in ${RUNNER} "$${i}" &> /dev/null; \
  81. ./dep/run/shell `echo "$${i}"|sed s/.js//`.abc >> \
  82. ${RESULTS}/tamarin.txt; \
  83. rm `echo "$${i}"|sed s/.js//`.abc; \
  84. done
  85. jscore: results ${TESTS}
  86. @@ echo "" > ${RESULTS}/jscore.txt
  87. @@ for i in ${TESTS}; do \
  88. echo "Testing $${i} in JavaScriptCore"; \
  89. cat ${RUNNER} "$${i}" > "$${i}.tmp"; \
  90. ./dep/run/testkjs "$${i}.tmp" 2> /dev/null | sed s/--\>.//g >> \
  91. ${RESULTS}/jscore.txt; \
  92. rm -f "$${i}.tmp"; \
  93. done
  94. clean:
  95. @@ rm -rf ${PERF}
  96. @@ rm -rf ${PERFSINGLE}
  97. @@ rm -rf ${RESULTS}
  98. @@ rm -rf ${WEB}