瀏覽代碼

Self test JSONDB.

Adam Ierymenko 8 年之前
父節點
當前提交
a454a37a6e
共有 2 個文件被更改,包括 20 次插入2 次删除
  1. 0 2
      controller/JSONDB.cpp
  2. 20 0
      selftest.cpp

+ 0 - 2
controller/JSONDB.cpp

@@ -147,8 +147,6 @@ std::string JSONDB::_genPath(const std::string &n,bool create)
 	std::vector<std::string> pt(Utils::split(n.c_str(),"/","",""));
 	if (pt.size() == 0)
 		return std::string();
-	if (pt.size() == 1)
-		return pt[0];
 
 	std::string p(_basePath);
 	if (create) OSUtils::mkdir(p.c_str());

+ 20 - 0
selftest.cpp

@@ -53,6 +53,8 @@
 #include "osdep/PortMapper.hpp"
 #include "osdep/Thread.hpp"
 
+#include "controller/JSONDB.hpp"
+
 #ifdef __WINDOWS__
 #include <tchar.h>
 #endif
@@ -807,6 +809,24 @@ static int testOther()
 	}
 	std::cout << "PASS (junk value to prevent optimization-out of test: " << foo << ")" << std::endl;
 
+	std::cout << "[other] Testing controller/JSONDB..."; std::cout.flush();
+	{
+		JSONDB db1("jsondb-test");
+		std::map<std::string,nlohmann::json> db1data;
+		for(unsigned int i=0;i<256;++i) {
+			std::string n;
+			for(unsigned int j=0,k=rand() % 4;j<=k;++j) {
+				if (j > 0) n.push_back('/');
+				char foo[24];
+				Utils::snprintf(foo,sizeof(foo),"%lx",rand());
+				n.append(foo);
+			}
+			db1data[n] = {{"i",i}};
+			db1.put(n,db1data[n]);
+		}
+	}
+	std::cout << "PASS" << std::endl;
+
 	return 0;
 }