summaryrefslogtreecommitdiff
path: root/tests/integration.sh
blob: e31ae4de80a73adb76897ec1a5d05dea2c36322d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/sh
set -eu

. tests/lib.sh


test_needs_minimum_salt_length() {
	testing 'needs minimum salt length'

	N="$LINENO"
	OUT="$(mkstemp)"
	ERR="$(mkstemp)"
	trap 'rm -f "$OUT" "$ERR"' EXIT
	STATUS=0
	./scrypt.bin password salt 1>"$OUT" 2>"$ERR" || STATUS=$?
	assert_status 2
	assert_empty_stdout
	assert_fgrep_stderr 'salt is too small'
	rm -f "$OUT" "$ERR"

	test_ok
}

test_same_input_same_output() {
	testing 'same input, same output'

	N="$LINENO"
	OUT="$(mkstemp)"
	ERR="$(mkstemp)"
	trap 'rm -f "$OUT" "$ERR"' EXIT
	STATUS=0
	#            8       16      24      32
	#            v       v       v       v
	SALT='saltsaltsaltsaltsaltsaltsaltsalti'
	HASH='969a539633fd531309197c26a671d593da0eadbd31c1194c23bd1b143a0ecb5e'
	./scrypt.bin password "$SALT" 1>"$OUT" 2>"$ERR" || STATUS=$?
	assert_status 0
	assert_stdout "$HASH"
	assert_empty_stderr
	rm -f "$OUT" "$ERR"

	test_ok
}


test_needs_minimum_salt_length
test_same_input_same_output