clean
[mkws-moved-to-github.git] / test / Makefile
1 # Copyright (c) 2013-2014 IndexData ApS. http://indexdata.com
2
3 # For running on Mike's local install of node.js
4 MIKE = PATH=$$PATH:/usr/local/lib/node-v0.10.24-linux-x64/bin
5
6 #PHANTOMJS_URL=https://mkws-dev.indexdata.com/jasmine-popup.html        
7 PHANTOMJS_URL=http://localhost:4040/jasmine-local-popup.html
8 PHANTOMJS_TIMEOUT=16
9
10 NPM_INSTALL_FLAGS=-q
11 JASMINE_NODE=   ./node_modules/jasmine-node/bin/jasmine-node
12 PHANTOMJS=      ./node_modules/phantomjs/bin/phantomjs
13 IMAGES= ./images
14 SCREENSHOT_WIDTH=       360 480 640 768 1024 1200 1440 2048
15 PERL_SCRIPTS=   bin/bomb.pl
16 TMP_DIR=        ./logs
17 APACHE_HTTPD=   /usr/sbin/apache2
18
19 all: check
20
21 clean:
22         rm -f mkws-error.png mkws-error.html 
23         rm -f images/*.png
24
25 distclean: clean clean-tmp clean-error
26         rm -rf node_modules
27         rm -f ${TMP_DIR}/jasmine-dev
28
29 clean-error:
30         rm -f mkws-error.png.* mkws-error.html.*
31
32 clean-tmp:
33         rm -rf ${TMP_DIR}
34         mkdir -p ${TMP_DIR}
35         touch ${TMP_DIR}/.gitignore
36
37 mkws-complete-syntax-check:
38         ${MAKE} -C../src mkws-complete.min.js
39
40 check: mkws-complete-syntax-check
41         @if [ ! -e node_modules ]; then echo "please run first: make node-modules"; exit 1; fi 
42         ${JASMINE_NODE} --noColor --captureExceptions --forceexit ./spec
43
44 test: check
45
46 terse:
47         $(MIKE) jasmine-node --noColor --captureExceptions --forceexit spec
48
49 phantomjs p: apache-stop apache-start
50         ./bin/bomb.pl --timeout="${PHANTOMJS_TIMEOUT}.5" ${PHANTOMJS} phantom/run-jasmine.js ${PHANTOMJS_URL} ${PHANTOMJS_TIMEOUT}
51         ${MAKE} apache-stop
52
53 screenshot:
54         ${PHANTOMJS} phantom/screenshot.js ${PHANTOMJS_URL} ${IMAGES}/screenshot.png 1200 1000
55
56 screenshot-mkws:
57         for i in ${SCREENSHOT_WIDTH}; do \
58             ${PHANTOMJS} phantom/screenshot.js http://mkws.indexdata.com ${IMAGES}/mkws-$$i.png $$i 1000 &  \
59         done; wait
60         ls -l ${IMAGES}
61
62 screenshot-indexdata:
63         for i in ${SCREENSHOT_WIDTH}; do \
64             ${PHANTOMJS} phantom/screenshot.js http://www.indexdata.com ${IMAGES}/indexdata-$$i.png $$i 1000 &  \
65         done; wait
66         ls -l ${IMAGES}
67
68 jsbeautifier jsb indent:
69         for i in package.json ./spec*/*.js ./js/*.js ./phantom/*.js; do \
70           jsbeautifier -j $$i > $@.tmp && mv -f $@.tmp $$i; \
71         done
72
73 perltidy:
74         @ls ${PERL_SCRIPTS} | xargs -n1 -P16 perl -c 2>/dev/null
75         @ls ${PERL_SCRIPTS} | xargs -n2 -P8 perltidy -b
76
77
78 node_modules node-modules:
79         npm install ${NPM_INSTALL_FLAGS}
80
81 apache-start:
82         bin/apache-template-update
83         ${APACHE_HTTPD} -f `pwd`/${TMP_DIR}/jasmine-dev
84         
85 apache-stop:
86         @-if [ -e ${TMP_DIR}/mkws-jasmine.pid ]; then \
87            kill `cat ${TMP_DIR}/mkws-jasmine.pid`; \
88         else \
89            killall apache2 2> /dev/null; \
90         fi
91         @sleep 0.3
92
93 help:
94         @echo "make [ all | check | clean | distclean ]"
95         @echo "     [ phantomjs | screenshot ]"
96         @echo "     [ jsbeautifier | perltidy ]"
97         @echo "     [ node-modules ]"
98         @echo "     [ apache-stop apache-start ]"
99         @echo ""
100         @echo "DEBUG=1 make phantomjs PHANTOMJS_TIMEOUT=8 PHANTOMJS_URL=${PHANTOMJS_URL}"
101