summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2015-07-29 10:08:03 -0400
committerGravatar Adam Chlipala <adam@chlipala.net>2015-07-29 10:08:03 -0400
commit935d293383bbadde9d8c3adaa2081e14a885472b (patch)
treed5cebb70cd418e00c38d094a94892f712faf94ec
parentc6e4d352f01eff2ddcdcc53c0f2a14666c2af8b2 (diff)
Add a simple 'make test' target
-rw-r--r--Makefile.am16
-rw-r--r--tests/crud1.html38
-rw-r--r--tests/hello.html10
3 files changed, 63 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index 11f9a132..79cd2e7d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -15,7 +15,7 @@ all-local: smlnj mlton
SUBDIRS = src/c
-.PHONY: smlnj mlton package reauto
+.PHONY: smlnj mlton package reauto test
smlnj: src/urweb.cm xml/entities.sml
mlton: bin/urweb
@@ -114,3 +114,17 @@ reauto:
EXTRA_DIST = demo doc lib/js lib/ur xml \
src/coq src/*.sig src/*.sml src/*.mlb src/config.sml.in src/elisp src/*.cm src/sources src/*.grm src/*.lex \
CHANGELOG LICENSE urweb.ebuild include/urweb/*.h bin
+
+TESTDB = /tmp/urweb.db
+TESTPID = /tmp/urweb.pid
+
+test:
+ urweb -dbms sqlite -db $(TESTDB) -demo /Demo demo
+ rm -f $(TESTDB)
+ sqlite3 $(TESTDB) < demo/demo.sql
+ demo/demo.exe & echo $$! > $(TESTPID)
+ sleep 1
+ (curl -s 'http://localhost:8080/Demo/Hello/main' | diff tests/hello.html -) || (kill `cat $(TESTPID)`; echo "Test 'Hello' failed"; /bin/false)
+ (curl -s 'http://localhost:8080/Demo/Crud1/create?A=1&B=2&C=3&D=4' | diff tests/crud1.html -) || (kill `cat $(TESTPID)`; echo "Test 'Crud1' failed"; /bin/false)
+ kill `cat $(TESTPID)`
+ echo Tests succeeded.
diff --git a/tests/crud1.html b/tests/crud1.html
new file mode 100644
index 00000000..7ed26d30
--- /dev/null
+++ b/tests/crud1.html
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head></head><body>
+<p>Inserted with ID 1.</p>
+
+<table border="1">
+<tr>
+<th>ID</th>
+<th>A</th>
+<th>B</th>
+<th>C</th>
+<th>D</th>
+</tr>
+
+<tr>
+<td>1</td>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>True</td>
+<td>
+<a href="/Demo/Crud1/upd/1">[Update]</a>
+<a href="/Demo/Crud1/confirm/1">[Delete]</a>
+</td>
+</tr>
+
+</table>
+<br /><hr /><br />
+
+ <form method="post" action="/Demo/Crud1/create">
+<li> A: <input type="text" name="A" /></li>
+<li> B: <input type="text" name="B" /></li>
+<li> C: <input type="text" name="C" /></li>
+<li> D: <input type="checkbox" name="D" /></li>
+<input type="submit" />
+</form>
+
+</body></html> \ No newline at end of file
diff --git a/tests/hello.html b/tests/hello.html
new file mode 100644
index 00000000..9c249df0
--- /dev/null
+++ b/tests/hello.html
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<title>Hello world!</title>
+</head>
+<body>
+<h1>Hello world!</h1>
+</body>
+</html> \ No newline at end of file