[Compbench-devel] CompBenchmarks++/SupportedBenchmarks Benchmark-NBENCH.cpp, 1.1, 1.2 Benchmark-NBE
Brought to you by:
xfred
From: Frederic T. <xf...@us...> - 2007-01-03 18:53:23
|
Update of /cvsroot/compbench/CompBenchmarks++/SupportedBenchmarks In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv19492 Modified Files: Benchmark-NBENCH.cpp Benchmark-NBENCH.h Log Message: CBMPackage and new related API used. Index: Benchmark-NBENCH.h =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/SupportedBenchmarks/Benchmark-NBENCH.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Benchmark-NBENCH.h 28 Dec 2006 17:41:04 -0000 1.1 --- Benchmark-NBENCH.h 3 Jan 2007 18:53:17 -0000 1.2 *************** *** 11,18 **** #include <Benchmark/Benchmark.h> /** \brief Defines the nbench package. */ ! class CBMBenchmarkNBENCH : public CBMBenchmark { public: --- 11,19 ---- #include <Benchmark/Benchmark.h> + #include <Benchmark/Package.h> /** \brief Defines the nbench package. */ ! class CBMPackageNBENCH : public CBMPackage { public: *************** *** 22,27 **** virtual std::string packageName(void); - virtual std::string benchmarkName(void) = 0; - virtual std::string benchmarkComments(void); virtual std::string packageVersion(void); --- 23,26 ---- *************** *** 33,44 **** protected: ! CBMBenchmarkNBENCH(class CBMSystem *_system); virtual std::string language(void); - virtual std::string nbyteBenchmark(void) = 0; - virtual std::string nbyteBenchmarkLabel(void) = 0; - virtual std::string benchmarkNBENCHComments(void) = 0; - - virtual int nbyteWriteDatFile(void); virtual char* extractDirectory(void); --- 32,39 ---- protected: ! CBMPackageNBENCH(class CBMSystem *_system); ! DLPackageWrapper_declare(); virtual std::string language(void); virtual char* extractDirectory(void); *************** *** 50,54 **** virtual int make(void); - virtual std::string bench(void); virtual int release(void); --- 45,48 ---- *************** *** 59,66 **** virtual int benchmarkSize(void); ! virtual ~CBMBenchmarkNBENCH(); }; /** \brief Defines the numsort benchmark within nbench package. */ --- 53,79 ---- virtual int benchmarkSize(void); ! virtual ~CBMPackageNBENCH(); }; + /** \brief Abstract benchmark for CBMPackageNBENCH package. + */ + class CBMBenchmarkNBENCH : public CBMBenchmark + { + protected: + + virtual int nbyteWriteDatFile(void); + + virtual std::string benchmarkComments(void); + virtual std::string nbyteBenchmark(void) = 0; + virtual std::string nbyteBenchmarkLabel(void) = 0; + virtual std::string benchmarkNBENCHComments(void) = 0; + + virtual std::string bench(void); + + CBMBenchmarkNBENCH(CBMPackage *_package); + virtual ~CBMBenchmarkNBENCH(); + }; + /** \brief Defines the numsort benchmark within nbench package. */ *************** *** 75,79 **** public: ! CBMBenchmarkNBENCH_NUMSORT(class CBMSystem *_system); virtual ~CBMBenchmarkNBENCH_NUMSORT(); }; --- 88,92 ---- public: ! CBMBenchmarkNBENCH_NUMSORT(CBMPackage *_package); virtual ~CBMBenchmarkNBENCH_NUMSORT(); }; *************** *** 91,95 **** public: ! CBMBenchmarkNBENCH_STRINGSORT(class CBMSystem *_system); virtual ~CBMBenchmarkNBENCH_STRINGSORT(); }; --- 104,108 ---- public: ! CBMBenchmarkNBENCH_STRINGSORT(CBMPackage *_package); virtual ~CBMBenchmarkNBENCH_STRINGSORT(); }; *************** *** 107,111 **** public: ! CBMBenchmarkNBENCH_BITFIELD(class CBMSystem *_system); virtual ~CBMBenchmarkNBENCH_BITFIELD(); }; --- 120,124 ---- public: ! CBMBenchmarkNBENCH_BITFIELD(CBMPackage *_package); virtual ~CBMBenchmarkNBENCH_BITFIELD(); }; *************** *** 123,127 **** public: ! CBMBenchmarkNBENCH_EMF(class CBMSystem *_system); virtual ~CBMBenchmarkNBENCH_EMF(); }; --- 136,140 ---- public: ! CBMBenchmarkNBENCH_EMF(CBMPackage *_package); virtual ~CBMBenchmarkNBENCH_EMF(); }; *************** *** 139,143 **** public: ! CBMBenchmarkNBENCH_FOURIER(class CBMSystem *_system); virtual ~CBMBenchmarkNBENCH_FOURIER(); }; --- 152,156 ---- public: ! CBMBenchmarkNBENCH_FOURIER(CBMPackage *_package); virtual ~CBMBenchmarkNBENCH_FOURIER(); }; *************** *** 155,159 **** public: ! CBMBenchmarkNBENCH_ASSIGN(class CBMSystem *_system); virtual ~CBMBenchmarkNBENCH_ASSIGN(); }; --- 168,172 ---- public: ! CBMBenchmarkNBENCH_ASSIGN(CBMPackage *_package); virtual ~CBMBenchmarkNBENCH_ASSIGN(); }; *************** *** 171,175 **** public: ! CBMBenchmarkNBENCH_HUFFMAN(class CBMSystem *_system); virtual ~CBMBenchmarkNBENCH_HUFFMAN(); }; --- 184,188 ---- public: ! CBMBenchmarkNBENCH_HUFFMAN(CBMPackage *_package); virtual ~CBMBenchmarkNBENCH_HUFFMAN(); }; *************** *** 187,191 **** public: ! CBMBenchmarkNBENCH_IDEA(class CBMSystem *_system); virtual ~CBMBenchmarkNBENCH_IDEA(); }; --- 200,204 ---- public: ! CBMBenchmarkNBENCH_IDEA(CBMPackage *_package); virtual ~CBMBenchmarkNBENCH_IDEA(); }; *************** *** 203,207 **** public: ! CBMBenchmarkNBENCH_NNET(class CBMSystem *_system); virtual ~CBMBenchmarkNBENCH_NNET(); }; --- 216,220 ---- public: ! CBMBenchmarkNBENCH_NNET(CBMPackage *_package); virtual ~CBMBenchmarkNBENCH_NNET(); }; *************** *** 219,227 **** public: ! CBMBenchmarkNBENCH_LU(class CBMSystem *_system); virtual ~CBMBenchmarkNBENCH_LU(); }; ! lib_declare(); #endif --- 232,240 ---- public: ! CBMBenchmarkNBENCH_LU(CBMPackage *_package); virtual ~CBMBenchmarkNBENCH_LU(); }; ! DLdeclare(); #endif Index: Benchmark-NBENCH.cpp =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/SupportedBenchmarks/Benchmark-NBENCH.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Benchmark-NBENCH.cpp 28 Dec 2006 17:41:04 -0000 1.1 --- Benchmark-NBENCH.cpp 3 Jan 2007 18:53:17 -0000 1.2 *************** *** 7,90 **** #include <SupportedBenchmarks/Benchmark-NBENCH.libwrapper.h> ! CBMBenchmarkNBENCH::CBMBenchmarkNBENCH(CBMSystem *_system) ! : CBMBenchmark(_system) { } ! std::string CBMBenchmarkNBENCH::downloadURL(void) { return("http://www.tux.org/~mayer/linux/nbench-byte-2.2.2.tar.gz"); } ! std::string CBMBenchmarkNBENCH::expectedMD5(void) { return("174c1917eea8f74bd3e78522592e0658"); } ! std::string CBMBenchmarkNBENCH::packageName(void) { return("nbench"); } ! std::string CBMBenchmarkNBENCH::benchmarkComments(void) ! { ! std::string comment; ! ! comment+=benchmarkNBENCHComments(); ! comment+=" (Comment from http://www.byte.com/bmark/bdoc.htm)"; ! ! return(comment); ! } ! ! std::string CBMBenchmarkNBENCH::packageVersion(void) { return("2.2.2"); } ! int CBMBenchmarkNBENCH::nbyteWriteDatFile(void) ! { ! std::ofstream OUT; ! std::string fileName; ! std::string contains = "CUSTOMRUN=T\n"; ! ! contains+=nbyteBenchmark(); ! contains+="=T\n"; ! ! fileName+=localPackageAbsoluteDirectory(); ! fileName+="/COMPBENCH.DAT"; ! ! OUT.open(fileName.c_str(), std::ios::out); ! OUT << contains; ! OUT.close(); ! ! return(1); ! } ! ! int CBMBenchmarkNBENCH::packageSize(void) { return(111751); } ! std::string CBMBenchmarkNBENCH::packageComments(void) { return("Uwe F. Mayer's UNIX port of BYTE Magazine's BYTEmark benchmark program"); } ! std::string CBMBenchmarkNBENCH::localPackageName(void) { return("nbench-byte-2.2.2.tar.gz"); } ! std::string CBMBenchmarkNBENCH::language(void) { return("C"); } ! char* CBMBenchmarkNBENCH::extractDirectory(void) { return("nbench-byte-2.2.2"); } ! int CBMBenchmarkNBENCH::extract(int _force) { std::string localFile = localPackageAbsoluteName(); --- 7,61 ---- #include <SupportedBenchmarks/Benchmark-NBENCH.libwrapper.h> ! CBMPackageNBENCH::CBMPackageNBENCH(CBMSystem *_system) ! : CBMPackage(_system) { } ! std::string CBMPackageNBENCH::downloadURL(void) { return("http://www.tux.org/~mayer/linux/nbench-byte-2.2.2.tar.gz"); } ! std::string CBMPackageNBENCH::expectedMD5(void) { return("174c1917eea8f74bd3e78522592e0658"); } ! std::string CBMPackageNBENCH::packageName(void) { return("nbench"); } ! std::string CBMPackageNBENCH::packageVersion(void) { return("2.2.2"); } ! int CBMPackageNBENCH::packageSize(void) { return(111751); } ! std::string CBMPackageNBENCH::packageComments(void) { return("Uwe F. Mayer's UNIX port of BYTE Magazine's BYTEmark benchmark program"); } ! std::string CBMPackageNBENCH::localPackageName(void) { return("nbench-byte-2.2.2.tar.gz"); } ! std::string CBMPackageNBENCH::language(void) { return("C"); } ! char* CBMPackageNBENCH::extractDirectory(void) { return("nbench-byte-2.2.2"); } ! int CBMPackageNBENCH::extract(int _force) { std::string localFile = localPackageAbsoluteName(); *************** *** 105,109 **** } ! int CBMBenchmarkNBENCH::preConfigure(int _force) { /* !!! */ --- 76,80 ---- } ! int CBMPackageNBENCH::preConfigure(int _force) { /* !!! */ *************** *** 111,115 **** } ! int CBMBenchmarkNBENCH::configure(CBMCompiler *_currentCompiler, CBMCompilerOptions *_currentOptions) { --- 82,86 ---- } ! int CBMPackageNBENCH::configure(CBMCompiler *_currentCompiler, CBMCompilerOptions *_currentOptions) { *************** *** 117,121 **** } ! int CBMBenchmarkNBENCH::make(void) { std::string cmd; --- 88,92 ---- } ! int CBMPackageNBENCH::make(void) { std::string cmd; *************** *** 155,182 **** } ! std::string CBMBenchmarkNBENCH::bench(void) ! { ! std::string cmd; ! std::string result; ! ! nbyteWriteDatFile(); ! ! cmd="cd "; ! cmd+=localPackageAbsoluteDirectory(); ! cmd+=" && echo $(./nbench -cCOMPBENCH.DAT | grep '^"; ! cmd+=nbyteBenchmarkLabel(); ! cmd+="' | "; ! cmd+=CBM_PROG_CUT; ! cmd+=" -f2 -d':')"; ! ! if (system->exec(cmd, result)==0) { ! return(result); ! } else { ! return("0"); ! } ! ! } ! ! int CBMBenchmarkNBENCH::release(void) { std::string cmd; --- 126,130 ---- } ! int CBMPackageNBENCH::release(void) { std::string cmd; *************** *** 192,221 **** } ! std::string CBMBenchmarkNBENCH::license(void) { return("Not specified"); } ! std::string CBMBenchmarkNBENCH::homePage(void) { return("http://www.tux.org/~mayer/linux/bmark.html"); } ! std::string CBMBenchmarkNBENCH::author(void) { return("Uwe F. Mayer"); } ! int CBMBenchmarkNBENCH::benchmarkSize(void) { return(packageSize()); } CBMBenchmarkNBENCH::~CBMBenchmarkNBENCH() { } ! CBMBenchmarkNBENCH_NUMSORT::CBMBenchmarkNBENCH_NUMSORT(CBMSystem *_system) ! : CBMBenchmarkNBENCH(_system) { } --- 140,230 ---- } ! std::string CBMPackageNBENCH::license(void) { return("Not specified"); } ! std::string CBMPackageNBENCH::homePage(void) { return("http://www.tux.org/~mayer/linux/bmark.html"); } ! std::string CBMPackageNBENCH::author(void) { return("Uwe F. Mayer"); } ! int CBMPackageNBENCH::benchmarkSize(void) { return(packageSize()); } + CBMPackageNBENCH::~CBMPackageNBENCH() + { + } + + CBMBenchmarkNBENCH::CBMBenchmarkNBENCH(CBMPackage *_package) + : CBMBenchmark(_package) + { + } + + int CBMBenchmarkNBENCH::nbyteWriteDatFile(void) + { + std::ofstream OUT; + std::string fileName; + std::string contains = "CUSTOMRUN=T\n"; + + contains+=nbyteBenchmark(); + contains+="=T\n"; + + fileName+=package->localPackageAbsoluteDirectory(); + fileName+="/COMPBENCH.DAT"; + + OUT.open(fileName.c_str(), std::ios::out); + OUT << contains; + OUT.close(); + + return(1); + } + + std::string CBMBenchmarkNBENCH::benchmarkComments(void) + { + std::string comment; + + comment+=benchmarkNBENCHComments(); + comment+=" (Comment from http://www.byte.com/bmark/bdoc.htm)"; + + return(comment); + } + + std::string CBMBenchmarkNBENCH::bench(void) + { + std::string cmd; + std::string result; + + nbyteWriteDatFile(); + + cmd="cd "; + cmd+=package->localPackageAbsoluteDirectory(); + cmd+=" && echo $(./nbench -cCOMPBENCH.DAT | grep '^"; + cmd+=nbyteBenchmarkLabel(); + cmd+="' | "; + cmd+=CBM_PROG_CUT; + cmd+=" -f2 -d':')"; + + if (System()->exec(cmd, result)==0) { + return(result); + } else { + return("0"); + } + + } + CBMBenchmarkNBENCH::~CBMBenchmarkNBENCH() { } ! CBMBenchmarkNBENCH_NUMSORT::CBMBenchmarkNBENCH_NUMSORT(CBMPackage *_package) ! : CBMBenchmarkNBENCH(_package) { } *************** *** 249,254 **** } ! CBMBenchmarkNBENCH_STRINGSORT::CBMBenchmarkNBENCH_STRINGSORT(CBMSystem *_system) ! : CBMBenchmarkNBENCH(_system) { } --- 258,263 ---- } ! CBMBenchmarkNBENCH_STRINGSORT::CBMBenchmarkNBENCH_STRINGSORT(CBMPackage *_package) ! : CBMBenchmarkNBENCH(_package) { } *************** *** 286,291 **** } ! CBMBenchmarkNBENCH_BITFIELD::CBMBenchmarkNBENCH_BITFIELD(CBMSystem *_system) ! : CBMBenchmarkNBENCH(_system) { } --- 295,300 ---- } ! CBMBenchmarkNBENCH_BITFIELD::CBMBenchmarkNBENCH_BITFIELD(CBMPackage *_package) ! : CBMBenchmarkNBENCH(_package) { } *************** *** 322,327 **** } ! CBMBenchmarkNBENCH_EMF::CBMBenchmarkNBENCH_EMF(CBMSystem *_system) ! : CBMBenchmarkNBENCH(_system) { } --- 331,336 ---- } ! CBMBenchmarkNBENCH_EMF::CBMBenchmarkNBENCH_EMF(CBMPackage *_package) ! : CBMBenchmarkNBENCH(_package) { } *************** *** 353,358 **** } ! CBMBenchmarkNBENCH_FOURIER::CBMBenchmarkNBENCH_FOURIER(CBMSystem *_system) ! : CBMBenchmarkNBENCH(_system) { } --- 362,367 ---- } ! CBMBenchmarkNBENCH_FOURIER::CBMBenchmarkNBENCH_FOURIER(CBMPackage *_package) ! : CBMBenchmarkNBENCH(_package) { } *************** *** 387,392 **** ! CBMBenchmarkNBENCH_ASSIGN::CBMBenchmarkNBENCH_ASSIGN(CBMSystem *_system) ! : CBMBenchmarkNBENCH(_system) { } --- 396,401 ---- ! CBMBenchmarkNBENCH_ASSIGN::CBMBenchmarkNBENCH_ASSIGN(CBMPackage *_package) ! : CBMBenchmarkNBENCH(_package) { } *************** *** 425,430 **** } ! CBMBenchmarkNBENCH_HUFFMAN::CBMBenchmarkNBENCH_HUFFMAN(CBMSystem *_system) ! : CBMBenchmarkNBENCH(_system) { } --- 434,439 ---- } ! CBMBenchmarkNBENCH_HUFFMAN::CBMBenchmarkNBENCH_HUFFMAN(CBMPackage *_package) ! : CBMBenchmarkNBENCH(_package) { } *************** *** 457,462 **** } ! CBMBenchmarkNBENCH_IDEA::CBMBenchmarkNBENCH_IDEA(CBMSystem *_system) ! : CBMBenchmarkNBENCH(_system) { } --- 466,471 ---- } ! CBMBenchmarkNBENCH_IDEA::CBMBenchmarkNBENCH_IDEA(CBMPackage *_package) ! : CBMBenchmarkNBENCH(_package) { } *************** *** 488,493 **** } ! CBMBenchmarkNBENCH_NNET::CBMBenchmarkNBENCH_NNET(CBMSystem *_system) ! : CBMBenchmarkNBENCH(_system) { } --- 497,502 ---- } ! CBMBenchmarkNBENCH_NNET::CBMBenchmarkNBENCH_NNET(CBMPackage *_package) ! : CBMBenchmarkNBENCH(_package) { } *************** *** 522,527 **** } ! CBMBenchmarkNBENCH_LU::CBMBenchmarkNBENCH_LU(CBMSystem *_system) ! : CBMBenchmarkNBENCH(_system) { } --- 531,536 ---- } ! CBMBenchmarkNBENCH_LU::CBMBenchmarkNBENCH_LU(CBMPackage *_package) ! : CBMBenchmarkNBENCH(_package) { } |