Skip to content

Commit 043067e

Browse files
committed
fix web concurrency tests
1 parent 572e52f commit 043067e

File tree

2 files changed

+44
-33
lines changed

2 files changed

+44
-33
lines changed

profile/nodejs.sh

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ calculate_concurrency() {
1010
WEB_CONCURRENCY=$WEB_CONCURRENCY
1111
}
1212

13+
log_concurrency() {
14+
echo "Detected $MEMORY_AVAILABLE MB available memory, $WEB_MEMORY MB limit per process (WEB_MEMORY)"
15+
echo "Recommending WEB_CONCURRENCY=$WEB_CONCURRENCY"
16+
}
17+
1318
detect_memory() {
1419
local default=$1
1520
local limit=$(ulimit -u)
@@ -24,10 +29,13 @@ detect_memory() {
2429

2530
export PATH="$HOME/.heroku/node/bin:$HOME/bin:$HOME/node_modules/.bin:$PATH"
2631
export NODE_HOME="$HOME/.heroku/node"
27-
export NODE_ENV=${NODE_ENV:-production}
2832

2933
calculate_concurrency
3034

3135
export MEMORY_AVAILABLE=$MEMORY_AVAILABLE
3236
export WEB_MEMORY=$WEB_MEMORY
3337
export WEB_CONCURRENCY=$WEB_CONCURRENCY
38+
39+
if [ "$LOG_CONCURRENCY" = "true" ]; then
40+
log_concurrency
41+
fi

test/run

Lines changed: 35 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,41 @@
11
#!/usr/bin/env bash
22
# See README.md for info on running these tests.
33

4+
testConcurrency1X() {
5+
LOG_CONCURRENCY=true MEMORY_AVAILABLE=512 capture $(pwd)/profile/nodejs.sh
6+
assertCaptured "Detected 512 MB available memory, 512 MB limit per process (WEB_MEMORY)"
7+
assertCaptured "Recommending WEB_CONCURRENCY=1"
8+
assertCapturedSuccess
9+
}
10+
11+
testConcurrency2X() {
12+
LOG_CONCURRENCY=true MEMORY_AVAILABLE=1024 capture $(pwd)/profile/nodejs.sh
13+
assertCaptured "Detected 1024 MB available memory, 512 MB limit per process (WEB_MEMORY)"
14+
assertCaptured "Recommending WEB_CONCURRENCY=2"
15+
assertCapturedSuccess
16+
}
17+
18+
testConcurrencyPX() {
19+
LOG_CONCURRENCY=true MEMORY_AVAILABLE=6144 capture $(pwd)/profile/nodejs.sh
20+
assertCaptured "Detected 6144 MB available memory, 512 MB limit per process (WEB_MEMORY)"
21+
assertCaptured "Recommending WEB_CONCURRENCY=12"
22+
assertCapturedSuccess
23+
}
24+
25+
testConcurrencyCustomLimit() {
26+
LOG_CONCURRENCY=true MEMORY_AVAILABLE=1024 WEB_MEMORY=256 capture $(pwd)/profile/nodejs.sh
27+
assertCaptured "Detected 1024 MB available memory, 256 MB limit per process (WEB_MEMORY)"
28+
assertCaptured "Recommending WEB_CONCURRENCY=4"
29+
assertCapturedSuccess
30+
}
31+
32+
testConcurrencySaneMaximum() {
33+
LOG_CONCURRENCY=true MEMORY_AVAILABLE=6144 WEB_MEMORY=32 capture $(pwd)/profile/nodejs.sh
34+
assertCaptured "Detected 6144 MB available memory, 32 MB limit per process (WEB_MEMORY)"
35+
assertCaptured "Recommending WEB_CONCURRENCY=32"
36+
assertCapturedSuccess
37+
}
38+
439
testInvalidNode() {
540
compile "invalid-node"
641
assertCaptured "Downloading and installing node 0.11.33"
@@ -404,38 +439,6 @@ testMultiExport() {
404439
assertCapturedSuccess
405440
}
406441

407-
testConcurrency1X() {
408-
MEMORY_AVAILABLE=512 capture $(pwd)/profile/nodejs.sh
409-
assertEquals "$WEB_CONCURRENCY" "1"
410-
assertCapturedSuccess
411-
}
412-
413-
testConcurrency2X() {
414-
MEMORY_AVAILABLE=1024 capture $(pwd)/profile/nodejs.sh
415-
assertEquals "$WEB_CONCURRENCY" "2"
416-
assertCapturedSuccess
417-
}
418-
419-
testConcurrencyPX() {
420-
MEMORY_AVAILABLE=6144 capture $(pwd)/profile/nodejs.sh
421-
assertEquals "$WEB_CONCURRENCY" "12"
422-
assertCapturedSuccess
423-
}
424-
425-
testConcurrencyCustomLimit() {
426-
MEMORY_AVAILABLE=1024 WEB_MEMORY=256 capture $(pwd)/profile/nodejs.sh
427-
assertEquals "$WEB_CONCURRENCY" "4"
428-
assertCapturedSuccess
429-
}
430-
431-
testConcurrencySaneMaximum() {
432-
MEMORY_AVAILABLE=6144 WEB_MEMORY=32 capture $(pwd)/profile/nodejs.sh
433-
assertCaptured "Detected 6144 MB available memory, 32 MB limit per process (WEB_MEMORY)"
434-
assertCaptured "Recommending WEB_CONCURRENCY=32"
435-
assertCapturedSuccess
436-
}
437-
438-
439442
# Utils
440443

441444
pushd $(dirname 0) >/dev/null

0 commit comments

Comments
 (0)