diff --git a/server/Makefile b/server/Makefile index 8b4775c..43a39b3 100644 --- a/server/Makefile +++ b/server/Makefile @@ -19,11 +19,14 @@ endif .PHONY: all clear -all: mt-server +all: mt-server servertest mt-server: main.o libjson-adapter.a $(CXX) $(CXXFLAGS) -o $@ $^ ../../pEpEngine/asn.1/libasn1.a $(LDFLAGS) +servertest: servertest.o + $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) + libjson-adapter.a: json-adapter.o registry.o nfc.o json_rpc.o \ function_map.o pep-types.o \ @@ -39,7 +42,7 @@ libjson-adapter.a: json-adapter.o registry.o nfc.o json_rpc.o \ $(CXX) $(CXXFLAGS) -c $< clean: - rm -vf mt-server + rm -vf mt-server servertest rm -vf *.o rm -vf json_spirit/*.o rm -vf *.a diff --git a/server/servertest.cc b/server/servertest.cc new file mode 100644 index 0000000..5c9b5d9 --- /dev/null +++ b/server/servertest.cc @@ -0,0 +1,119 @@ +#include "pep-utils.hh" +#include +#include +#include +#include +#include + +unsigned Producers = 7; +unsigned Consumers = 5; +unsigned Elements = 1000*1000; + +std::atomic finished(false); + +void do_nothing(uint64_t) {} +pEp::utility::locked_queue Q; + +std::vector< std::vector > v; + + +void produ(unsigned nr) +{ + std::cout << "Producer #" << nr << " starts." << std::endl; + for(unsigned e = 0; e1) + { + Producers = atol(argv[1]); + if(Producers<1 || Producers > 99999) + Producers = 1; + } + + if(argc>2) + { + Consumers = atol(argv[2]); + if(Consumers<1 || Consumers > 99999) + Consumers = 1; + } + + if(argc>3) + { + Elements = atol(argv[3]); + if(Elements<1 || Elements > 1024*1024*1024) + Elements = 10000; + } + + std::cout << "Testing with " << Producers << " producer threads, " << Consumers << " consumer threads, " << Elements << " elements per thread." << std::endl; + + v.resize(Consumers); + std::vector vp; vp.reserve(Producers); + std::vector vc; vc.reserve(Consumers); + + for(unsigned c = 0; c s; + for(unsigned c=0; c