blob: 311e93c3015309f0b8317a08ac3dc37e6f15b93f (
plain)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
#
# Unit tests validating the SQL 'nas' table clients
#
#
# Test name
#
TEST := test.sql_nas_table
FILES := $(subst $(DIR)/,,$(wildcard $(DIR)/*.txt))
#
# If we have rlm_sql_sqlite and sqlite3
#
ifneq "$(findstring rlm_sql_sqlite,$(ALL_TGTS))" ""
SQLITE3 := $(shell which sqlite3)
endif
ifneq "$(SQLITE3)" ""
#
# Run the full tests
#
$(eval $(call TEST_BOOTSTRAP))
#
# Config settings
#
SQL_NASTABLE_BUILD_DIR := $(BUILD_DIR)/tests/sql_nas_table
SQL_NASTABLE_RADIUS_LOG := $(SQL_NASTABLE_BUILD_DIR)/radiusd.log
SQL_NASTABLE_GDB_LOG := $(SQL_NASTABLE_BUILD_DIR)/gdb.log
SQL_NASTABLE_DB := $(SQL_NASTABLE_BUILD_DIR)/sql_nas_table.db
# Used by src/tests/sql_nas_table/config/radiusd.conf
export SQL_NASTABLE_DB
#
# Generic rules to start / stop the radius service.
#
include src/tests/radiusd.mk
$(eval $(call RADIUSD_SERVICE,radiusd,$(OUTPUT)))
.PHONY: sql_nas_table_bootstrap
sql_nas_table_bootstrap:
${Q}rm -f $(SQL_NASTABLE_DB)
${Q}mkdir -p $(SQL_NASTABLE_BUILD_DIR)
${Q}sqlite3 $(SQL_NASTABLE_DB) < ./raddb/mods-config/sql/main/sqlite/schema.sql
${Q}sqlite3 $(SQL_NASTABLE_DB) < ./src/tests/sql_nas_table/clients.sql
#
# Run the radclient commands against the radiusd.
#
$(OUTPUT)/%: $(DIR)/% | $(TEST).radiusd_kill sql_nas_table_bootstrap $(TEST).radiusd_start
${Q}echo "SQL_NASTABLE-TEST"
${Q}mkdir -p $(dir $@)
${Q}[ -f $(dir $@)/radiusd.pid ] || exit 1
${Q}if ! $(TESTBIN)/radclient $(ARGV) -xf src/tests/sql_nas_table/auth.txt -D share/ 127.0.0.1:$(PORT) auth $(SECRET) 1> $(SQL_NASTABLE_BUILD_DIR)/radclient.log 2>&1; then \
echo "FAILED"; \
rm -f $(BUILD_DIR)/tests/test.sql_nas_table; \
$(MAKE) --no-print-directory test.sql_nas_table.radiusd_kill; \
echo ==============================; \
tail -10 $(SQL_NASTABLE_BUILD_DIR)/radclient.log; \
echo ==============================; \
echo "RADIUSD: $(RADIUSD_RUN)"; \
echo "SQL_NASTABLE: $(TESTBIN)/radclient $(ARGV) -f $< -xF -d src/tests/sql_nas_table/config -D share/ 127.0.0.1:$(PORT) auth $(SECRET)"; \
exit 1; \
fi
${Q}touch $@
$(TEST):
${Q}$(MAKE) --no-print-directory $@.radiusd_stop
@touch $(BUILD_DIR)/tests/$@
else
#
# No sqlite3 command, don't do anything.
#
$(TEST):
endif
|