summaryrefslogtreecommitdiff
path: root/test/example
diff options
context:
space:
mode:
Diffstat (limited to 'test/example')
-rw-r--r--test/example/small_vector.cpp68
-rw-r--r--test/example/small_vector.txt1
2 files changed, 69 insertions, 0 deletions
diff --git a/test/example/small_vector.cpp b/test/example/small_vector.cpp
new file mode 100644
index 000000000..732cbfac3
--- /dev/null
+++ b/test/example/small_vector.cpp
@@ -0,0 +1,68 @@
+#include <iostream>
+#include <cassert>
+
+#include "support/small_vector.h"
+
+using namespace wasm;
+
+template<typename T>
+void test() {
+ {
+ T t;
+ // build up
+ assert(t.empty());
+ assert(t.size() == 0);
+ t.push_back(1);
+ assert(!t.empty());
+ assert(t.size() == 1);
+ t.push_back(2);
+ assert(!t.empty());
+ assert(t.size() == 2);
+ t.push_back(3);
+ assert(!t.empty());
+ // unwind
+ assert(t.size() == 3);
+ assert(t.back() == 3);
+ t.pop_back();
+ assert(t.size() == 2);
+ assert(t.back() == 2);
+ t.pop_back();
+ assert(t.size() == 1);
+ assert(t.back() == 1);
+ t.pop_back();
+ assert(t.size() == 0);
+ assert(t.empty());
+ }
+ {
+ T t;
+ // build up
+ t.push_back(1);
+ t.push_back(2);
+ t.push_back(3);
+ // unwind
+ t.clear();
+ assert(t.size() == 0);
+ assert(t.empty());
+ }
+ {
+ T t, u;
+ assert(t == u);
+ t.push_back(1);
+ assert(t != u);
+ u.push_back(1);
+ assert(t == u);
+ u.pop_back();
+ assert(t != u);
+ u.push_back(2);
+ assert(t != u);
+ }
+}
+
+int main() {
+ test<SmallVector<int, 0>>();
+ test<SmallVector<int, 1>>();
+ test<SmallVector<int, 2>>();
+ test<SmallVector<int, 10>>();
+ std::cout << "ok.\n";
+}
+
diff --git a/test/example/small_vector.txt b/test/example/small_vector.txt
new file mode 100644
index 000000000..90b5016ef
--- /dev/null
+++ b/test/example/small_vector.txt
@@ -0,0 +1 @@
+ok.