summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2017-05-05 12:47:06 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2017-05-05 12:47:06 +0300
commit0f08dcfc229402dcafeffc45c01d9713e62cb9c5 (patch)
treeccf15b3448699f30499ecdf92dbd5d51f88d8640
parent823f53f89963bde6e6d57e58348f8242fda2cdd9 (diff)
Add tests
-rw-r--r--build/bootstrap.build1
-rw-r--r--buildfile6
-rw-r--r--tests/.gitignore1
-rw-r--r--tests/build/.gitignore1
-rw-r--r--tests/build/bootstrap.build5
-rw-r--r--tests/build/root.build14
-rw-r--r--tests/buildfile1
-rw-r--r--tests/test/buildfile4
-rw-r--r--tests/test/driver.cxx13
-rw-r--r--tests/test/test.out1
10 files changed, 46 insertions, 1 deletions
diff --git a/build/bootstrap.build b/build/bootstrap.build
index 6d11af9..b6e8537 100644
--- a/build/bootstrap.build
+++ b/build/bootstrap.build
@@ -3,4 +3,5 @@ project = libformat
using version
using config
using dist
+using test
using install
diff --git a/buildfile b/buildfile
index 031e7c2..27e0dec 100644
--- a/buildfile
+++ b/buildfile
@@ -1,4 +1,8 @@
-./: libformat/ doc{version} file{manifest}
+./: libformat/ tests/ doc{version} file{manifest}
doc{version}: file{manifest} # Generated by the version module.
doc{version}: dist = true
+
+# Don't install tests.
+#
+dir{tests/}: install = false
diff --git a/tests/.gitignore b/tests/.gitignore
new file mode 100644
index 0000000..e54525b
--- /dev/null
+++ b/tests/.gitignore
@@ -0,0 +1 @@
+driver
diff --git a/tests/build/.gitignore b/tests/build/.gitignore
new file mode 100644
index 0000000..225c27f
--- /dev/null
+++ b/tests/build/.gitignore
@@ -0,0 +1 @@
+config.build
diff --git a/tests/build/bootstrap.build b/tests/build/bootstrap.build
new file mode 100644
index 0000000..2c2de24
--- /dev/null
+++ b/tests/build/bootstrap.build
@@ -0,0 +1,5 @@
+project = # Unnamed subproject.
+
+using config
+using dist
+using test
diff --git a/tests/build/root.build b/tests/build/root.build
new file mode 100644
index 0000000..a2ee38a
--- /dev/null
+++ b/tests/build/root.build
@@ -0,0 +1,14 @@
+cxx.std = 11
+
+using cxx
+
+hxx{*}: extension = hxx
+cxx{*}: extension = cxx
+
+# Every exe{} in this subproject is by default a test.
+#
+exe{*}: test = true
+
+# Specify the test target for cross-testing.
+#
+test.target = $cxx.target
diff --git a/tests/buildfile b/tests/buildfile
new file mode 100644
index 0000000..1a8bcc9
--- /dev/null
+++ b/tests/buildfile
@@ -0,0 +1 @@
+./: test/
diff --git a/tests/test/buildfile b/tests/test/buildfile
new file mode 100644
index 0000000..92d2804
--- /dev/null
+++ b/tests/test/buildfile
@@ -0,0 +1,4 @@
+import libs = libformat%lib{format}
+
+exe{driver}: cxx{driver} $libs
+exe{driver}: test.output = test.out
diff --git a/tests/test/driver.cxx b/tests/test/driver.cxx
new file mode 100644
index 0000000..fb2939d
--- /dev/null
+++ b/tests/test/driver.cxx
@@ -0,0 +1,13 @@
+// file: tests/test/driver.cxx -*- C++ -*-
+
+#include <iostream>
+
+#include <libformat/format.hxx>
+
+int
+main ()
+{
+ using namespace std;
+
+ cout << format ("Hello", "World") << endl;
+}
diff --git a/tests/test/test.out b/tests/test/test.out
new file mode 100644
index 0000000..8ab686e
--- /dev/null
+++ b/tests/test/test.out
@@ -0,0 +1 @@
+Hello, World!