File indexing completed on 2024-05-19 15:46:09
0001 /* 0002 SPDX-FileCopyrightText: 2013 Morten Danielsen Volden <mvolden2@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include <iostream> 0008 #include <QString> 0009 #include <QByteArray> 0010 0011 bool validateNumberOfArguments(int argc, char** /*argv*/) 0012 { 0013 if (argc < 3) { 0014 return false; 0015 } 0016 0017 return true; 0018 } 0019 0020 0021 int fakeFstatOutput(QString const& filepath) 0022 { 0023 QByteArray tmp = filepath.toUtf8(); 0024 std::string fileText(tmp.constData(), tmp.size()); 0025 std::cout << "... depotFile /" << fileText << std::endl;// /tools/test/new_file.txt" 0026 std::cout << "... clientFile /home/projects" << fileText << std::endl; 0027 std::cout << "... isMapped" << std::endl; 0028 std::cout << "... headAction add" << std::endl; 0029 std::cout << "... headType text" << std::endl; 0030 std::cout << "... headTime 1285014691" << std::endl; 0031 std::cout << "... headRev 1" << std::endl; 0032 std::cout << "... headChange 759253" << std::endl; 0033 std::cout << "... headModTime 1285014680" << std::endl; 0034 std::cout << "... haveRev 1" << std::endl; 0035 return 0; 0036 } 0037 0038 int fakeRevertOutput() 0039 { 0040 return 0; 0041 } 0042 0043 int fakeSyncOutput() 0044 { 0045 return 0; 0046 } 0047 0048 int fakeSubmitOutput() 0049 { 0050 return 0; 0051 } 0052 0053 int fakeDiff2Output() 0054 { 0055 return 0; 0056 } 0057 0058 int fakeDiffOutput() 0059 { 0060 return 0; 0061 } 0062 0063 int fakeFileLogOutput(QString const& filepath) 0064 { 0065 QByteArray tmp = filepath.toUtf8(); 0066 std::string fileText(tmp.constData(), tmp.size()); 0067 std::cout << "//depot/" << fileText << std::endl; 0068 std::cout << "... #14 change 72 edit on 2013/02/04 15:38:35 by mvo@testbed (ktext)" << std::endl; 0069 std::cout << std::endl; 0070 std::cout << " Log a little more out" << std::endl; 0071 std::cout << std::endl; 0072 std::cout << "... #13 change 67 edit on 2013/02/04 15:31:48 by mov@testbed (ktext)" << std::endl; 0073 std::cout << std::endl; 0074 std::cout << " Rename rand -> random_number" << std::endl; 0075 std::cout << std::endl; 0076 std::cout << "... #12 change 79 edit on 2013/01/29 18:02:33 by mvo@testbed (ktext)" << std::endl; 0077 std::cout << std::endl; 0078 std::cout << " Prefer the use of std::string" << std::endl; 0079 std::cout << std::endl; 0080 std::cout << "... #11 change 33 edit on 2013/01/29 15:48:41 by mvo@testbed (ktext)" << std::endl; 0081 std::cout << std::endl; 0082 std::cout << " Correct Test Class to use QString" << std::endl; 0083 std::cout << std::endl; 0084 std::cout << "... #10 change 76 edit on 2013/01/28 19:21:33 by vom@testbed (ktext)" << std::endl; 0085 std::cout << std::endl; 0086 std::cout << " Minor changes. Changed the log level of a couple of log lines." << std::endl; 0087 std::cout << std::endl; 0088 std::cout << "... #9 change 17 edit on 2013/01/22 15:41:16 by vom@testbed (ktext)" << std::endl; 0089 std::cout << std::endl; 0090 std::cout << " Just added a comment" << std::endl; 0091 std::cout << std::endl; 0092 std::cout << "... #8 change 97 edit on 2013/01/17 13:54:26 by mvo@testbed (ktext)" << std::endl; 0093 std::cout << std::endl; 0094 std::cout << " Do not cleanup before we are absolutely done" << std::endl; 0095 std::cout << std::endl; 0096 std::cout << "... #7 change 12 edit on 2013/01/17 11:39:25 by mvo@testbed (ktext)" << std::endl; 0097 std::cout << std::endl; 0098 std::cout << " Insert a little debugging in the test class. Be more defensive when dealing with iterators" << std::endl; 0099 std::cout << std::endl; 0100 std::cout << "... #6 change 60 edit on 2013/01/09 13:19:07 by vom@testbed (ktext)" << std::endl; 0101 std::cout << std::endl; 0102 std::cout << " error and abort handling added to RingBuffer." << std::endl; 0103 std::cout << std::endl; 0104 std::cout << "... #5 change 30 edit on 2013/01/08 19:21:42 by mvo@testbed (ktext)" << std::endl; 0105 std::cout << std::endl; 0106 std::cout << " Fix two things in cleanup. Fix item on the todo list, cleanup a map" << std::endl; 0107 std::cout << std::endl; 0108 std::cout << "... #4 change 27 edit on 2013/01/08 13:26:05 by vom@testbed (ktext)" << std::endl; 0109 std::cout << std::endl; 0110 std::cout << " Clean-up of persisted data on disk has been added" << std::endl; 0111 std::cout << std::endl; 0112 std::cout << "... #3 change 5 edit on 2012/12/28 13:04:16 by vom@testbed (ktext)" << std::endl; 0113 std::cout << std::endl; 0114 std::cout << " Support for multiple things added." << std::endl; 0115 std::cout << std::endl; 0116 std::cout << "... #2 change 6 edit on 2012/12/04 14:05:10 by mvo@testbed (ktext)" << std::endl; 0117 std::cout << std::endl; 0118 std::cout << " Make Other test compile with new test class" << std::endl; 0119 std::cout << std::endl; 0120 std::cout << "... #1 change 1 add on 2012/12/04 13:48:25 by mvo@testbed (ktext)" << std::endl; 0121 std::cout << std::endl; 0122 std::cout << " Add RingBuffer" << std::endl; 0123 std::cout << std::endl; 0124 return 0; 0125 } 0126 0127 int fakeAnnotateOutput() 0128 { 0129 std::cout << "1: #include \\\"RingBuffer.h\\\"" << std::endl; 0130 std::cout << "1: #include \\\"inc/test/someClass.h\\\"" << std::endl; 0131 std::cout << "1: //#include \\\"hejsa.h\\\"" << std::endl; 0132 std::cout << "1: " << std::endl; 0133 std::cout << "1: #include <iostream>" << std::endl; 0134 std::cout << "1: " << std::endl; 0135 std::cout << "1: #include <vector>" << std::endl; 0136 std::cout << "1: #include <algorithm>" << std::endl; 0137 std::cout << "1: " << std::endl; 0138 std::cout << "1: #include <limits>" << std::endl; 0139 std::cout << "1: " << std::endl; 0140 std::cout << "1: #include <cstdlib>" << std::endl; 0141 std::cout << "1: #include <ctime>" << std::endl; 0142 std::cout << "1: " << std::endl; 0143 std::cout << "1: " << std::endl; 0144 std::cout << "5: void fillBuffer( RingBuffer& myBuffer, std::vector<uint64_t>& testVector )" << std::endl; 0145 std::cout << "1: {" << std::endl; 0146 std::cout << "1: uint64_t random_range( std::numeric_limits<unsigned long>::max() );" << std::endl; 0147 std::cout << "12: uint64_t random_number ( 0 );" << std::endl; 0148 std::cout << "79: /// First fill the buffer" << std::endl; 0149 std::cout << "1: for ( size_t i =0; i < RINGBUFFER_SIZE; ++i )" << std::endl; 0150 std::cout << "1: {" << std::endl; 0151 std::cout << "5: random_number = std::rand() % random_range;" << std::endl; 0152 std::cout << "5: myBuffer.push_back ( random_number );" << std::endl; 0153 std::cout << "5: testVector.push_back ( random_number );" << std::endl; 0154 std::cout << "6: }" << std::endl; 0155 std::cout << "76: }" << std::endl; 0156 std::cout << "76: " << std::endl; 0157 std::cout << "17: void testWithOnlyknown( RingBuffer& myBuffer, std::vector<uint64_t>& testVector )" << std::endl; 0158 std::cout << "17: {" << std::endl; 0159 std::cout << "17: uint64_t random_range ( RINGBUFFER_SIZE );" << std::endl; 0160 std::cout << "97: uint64_t random_number ( 0 );" << std::endl; 0161 std::cout << "12: /// Perform the test run on values we have already inserted." << std::endl; 0162 std::cout << "1: for ( size_t j =0; j < 1000000; ++j )" << std::endl; 0163 std::cout << "1: {" << std::endl; 0164 std::cout << "1: random_number = std::rand() % random_range;" << std::endl; 0165 std::cout << "1: myBuffer.push_back ( testVector[random_number] );" << std::endl; 0166 std::cout << "1: }" << std::endl; 0167 std::cout << "67: " << std::endl; 0168 std::cout << "67: }" << std::endl; 0169 std::cout << "67: " << std::endl; 0170 std::cout << "60: int main( int argc, char **argv )" << std::endl; 0171 std::cout << "60: {" << std::endl; 0172 std::cout << "27: RingBuffer myBuffer;" << std::endl; 0173 std::cout << "1: std::vector<uint64_t> testVector;" << std::endl; 0174 std::cout << "1: " << std::endl; 0175 std::cout << "1: std::srand( std::time ( 0 ) );" << std::endl; 0176 std::cout << "1: " << std::endl; 0177 std::cout << "1: fillBuffer( myBuffer, testVector );" << std::endl; 0178 std::cout << "27: testWithOnlyknown( myBuffer, testVector );" << std::endl; 0179 std::cout << "27: " << std::endl; 0180 std::cout << "27: std::cout << \\\"Done Testing\\\" << std::endl;" << std::endl; 0181 std::cout << "1: " << std::endl; 0182 std::cout << "1: return 0;" << std::endl; 0183 std::cout << "1: }" << std::endl; 0184 return 0; 0185 } 0186 0187 int fakeEditOutput(QString const& filepath) 0188 { 0189 QByteArray tmp = filepath.toUtf8(); 0190 std::string fileText(tmp.constData(), tmp.size()); 0191 std::cout << fileText << "#1 - opened for edit" << std::endl; 0192 return 0; 0193 } 0194 0195 int fakeAddOutput(QString const& filepath) 0196 { 0197 QByteArray tmp = filepath.toUtf8(); 0198 std::string fileText(tmp.constData(), tmp.size()); 0199 std::cout << fileText << "#1 - opened for add" << std::endl; 0200 return 0; 0201 } 0202 0203 int main(int argc, char** argv) 0204 { 0205 if (!validateNumberOfArguments(argc, argv)) { 0206 std::cout << "Was not able to validate number of arguments: " << argc << std::endl; 0207 return -1; 0208 } 0209 0210 if (qstrcmp(argv[1], "revert") == 0) { 0211 return fakeRevertOutput(); 0212 } else if (qstrcmp(argv[1], "sync") == 0) { 0213 return fakeSyncOutput(); 0214 } else if (qstrcmp(argv[1], "submit") == 0) { 0215 return fakeSubmitOutput(); 0216 } else if (qstrcmp(argv[1], "diff2") == 0) { 0217 return fakeDiff2Output(); 0218 } else if (qstrcmp(argv[1], "diff") == 0) { 0219 return fakeDiffOutput(); 0220 } else if (qstrcmp(argv[1], "filelog") == 0) { 0221 return fakeFileLogOutput(QString::fromUtf8(argv[3])); 0222 } else if (qstrcmp(argv[1], "annotate") == 0) { 0223 return fakeAnnotateOutput(); 0224 } else if (qstrcmp(argv[1], "edit") == 0) { 0225 return fakeEditOutput(QString::fromUtf8(argv[2])); 0226 } else if (qstrcmp(argv[1], "fstat") == 0) { 0227 return fakeFstatOutput(QString::fromUtf8(argv[2])); 0228 } else if (qstrcmp(argv[1], "add") == 0) { 0229 return fakeAddOutput(QString::fromUtf8(argv[2])); 0230 } 0231 return -1; 0232 }