cxx: Added various bits and pieces in cxx tests.
authorSimon Gerber <simon.gerber@inf.ethz.ch>
Wed, 18 Feb 2015 15:17:44 +0000 (16:17 +0100)
committerSimon Gerber <simon.gerber@inf.ethz.ch>
Mon, 9 Mar 2015 14:36:13 +0000 (15:36 +0100)
Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>

usr/tests/cxx/cxx11.cpp
usr/tests/cxx/cxxtest.hpp
usr/tests/cxx/stl_map.cpp
usr/tests/cxx/stl_vector.cpp
usr/tests/cxx/test.cpp

index 2aa4c58..a3232a8 100644 (file)
@@ -15,9 +15,9 @@
 
 using namespace std;
 
-static void cx11_lampda_test(void)
+static void cx11_lambda_test(void)
 {
-    cout << "cx11 lampda" << endl;
+    cout << "cx11 lambda" << endl;
 
     std::vector<int> v;
     v.push_back(1);
@@ -37,11 +37,16 @@ static void cx11_ranged_forloop_test(void)
     cout << "cx11 ranged forloop" << endl;
 
     std::map<std::string, std::vector<int>> map;
-    std::vector<int> v;
+    std::vector<int> v, v2;
     v.push_back(1);
     v.push_back(2);
     v.push_back(3);
+    v2.push_back(4);
+    v2.push_back(5);
+    v2.push_back(6);
+    v2.push_back(7);
     map["one"] = v;
+    map["two"] = v2;
 
     for(const auto& kvp : map)
     {
@@ -49,7 +54,7 @@ static void cx11_ranged_forloop_test(void)
 
       for(auto val : kvp.second)
       {
-         std::cout << val << std::endl;
+         std::cout << " " << val << std::endl;
       }
     }
 
@@ -65,5 +70,5 @@ void cx11_test(void)
     cout << "cx11_test" << endl;
 
     cx11_ranged_forloop_test();
-    cx11_lampda_test();
+    cx11_lambda_test();
 }
index 7fe6fff..d34ee77 100644 (file)
@@ -10,6 +10,7 @@
 
 void stl_list_test(void);
 void stl_vector_test(void);
+void stl_map_test(void);
 void stl_exception_test(void);
 void cx11_test(void);
 
index e84d214..6ebeb67 100644 (file)
@@ -9,7 +9,36 @@
 
 #include <iostream>
 #include <vector>
+#include <unordered_map>
 #include <string>
 
 #include "cxxtest.hpp"
 
+static std::vector<std::string> mapkeys {{"0", "1", "2"}};
+
+static std::unordered_map<std::string, uint32_t> simple_map
+{{"0", 0}, {"2", 2}, {"1", 1}};
+
+std::unordered_map<std::string, uint16_t> subscription_cost_to_id
+{{"0", 0}, {"10", 1}, {"20", 2}, {"50", 3}};
+
+static void stl_unordered_map_test_simple(void)
+{
+    std::cout << "STL unordered map: simple test" << std::endl;
+    for (auto it = mapkeys.begin(); it != mapkeys.end(); ++it) {
+        std::cout << *it << "->" << simple_map[*it] << std::endl;
+    }
+}
+
+void stl_map_test(void)
+{
+    stl_unordered_map_test_simple();
+}
+
+#ifndef BARRELFISH
+int main(void)
+{
+    stl_map_test();
+    return 0;
+}
+#endif
index 67476e4..d0d3363 100644 (file)
@@ -186,6 +186,24 @@ static void stl_vector_test_simple(void)
     cout << "OK." << endl;
 }
 
+static void stl_vector_test_emplace(void)
+{
+    std::cout << "STL vector: emplace test: ";
+
+    vector<int> v;
+    v.emplace_back(0);
+    v.emplace_back(1);
+    int i = 0;
+    for (auto it = v.begin(); it != v.end(); ++it, ++i) {
+        if (*it != i) {
+            cout << "Value mismatch: " << *it << " / " << i << endl;
+            abort();
+        }
+    }
+    cout << "OK." << endl;
+    return;
+}
+
 void stl_vector_test(void)
 {
     std::cout << "STL Vector tests" << std::endl;
@@ -193,4 +211,5 @@ void stl_vector_test(void)
     stl_vector_test_strings();
     stl_vector_2d();
     stl_vector_iter();
+    stl_vector_test_emplace();
 }
index 2b7d088..74f676d 100644 (file)
@@ -18,6 +18,7 @@ int main(int argc,
     std::cout << "This is cxx test" << std::endl;
     stl_list_test();
     stl_vector_test();
+    stl_map_test();
     stl_exception_test();
     cx11_test();