summaryrefslogtreecommitdiffstats
path: root/src/tests/sql_nas_table/all.mk
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