Lines Matching defs:testCase

149 void printHeader(int argc, char **argv, const TestCase& testCase)
193 printf("# Fadvise: %s\n", testCase.fadviseAsStr());
203 // @param[out] testCase Structure built from the cmd line args.
204 void parseCmdLine(int argc, char **argv, TestCase *testCase)\
223 testCase->setDataSize(atoi(optarg) * 1024);
226 testCase->setChunkSize(atoi(optarg) * 1024);
229 testCase->setTreeDepth(atoi(optarg));
232 testCase->setIter(atoi(optarg));
233 printf("# Iterations: %d\n", testCase->iter());
236 testCase->setNproc(atoi(optarg));
237 printf("# Proc nb: %d\n", testCase->nproc());
240 testCase->setTypeFromName(optarg);
241 printf("# Test name %s\n", testCase->name());
244 testCase->setDump();
248 testCase->setCpuScaling();
252 testCase->setSync(TestCase::SYNC);
254 testCase->setSync(TestCase::FSYNC);
259 testCase->setTruncateToSize();
262 testCase->setNewFairSleepers(false);
265 testCase->setNormalizedSleepers(false);
268 testCase->setFadvise(optarg);
288 // @param testCase has all the timers and paramters to run the test.
290 bool readData(char *const chunk, const int idx, TestCase *testCase)
296 testCase->openTimer()->start();
298 testCase->openTimer()->stop();
305 FADVISE(fd, 0, 0, testCase->fadvise());
307 size_t left = testCase->dataSize();
312 size_t chunk_size = testCase->chunkSize();
324 testCase->readTimer()->start();
337 testCase->readTimer()->stop();
340 if (testCase->pid() != *pid)
342 fprintf(stderr, "Wrong pid found @ read block %x != %x\n", testCase->pid(), *pid);
352 bool testRead(TestCase *testCase) {
354 const size_t size = testCase->dataSize();
355 size_t chunk_size = testCase->chunkSize();
359 *((pid_t *)chunk) = testCase->pid(); // write our pid at the beginning of each chunk
361 size_t iter = testCase->iter();
366 if (testCase->type() == TestCase::READ_WRITE)
375 sprintf(filename, "%s/file-%d-%d", kTestDir, i, testCase->pid());
395 if (kVerbose) printf("Child %d all chunk written\n", testCase->pid());
398 testCase->signalParentAndWait();
401 testCase->testTimer()->start();
404 if (!readData(chunk, i, testCase))
409 testCase->testTimer()->stop();
418 bool writeData(const char *const chunk, const int idx, TestCase *testCase) {
422 testCase->openTimer()->start();
424 testCase->openTimer()->stop();
431 FADVISE(fd, 0, 0, testCase->fadvise());
433 if (testCase->truncateToSize())
435 testCase->truncateTimer()->start();
436 ftruncate(fd, testCase->dataSize());
437 testCase->truncateTimer()->stop();
440 size_t left = testCase->dataSize();
444 size_t chunk_size = testCase->chunkSize();
457 testCase->writeTimer()->start();
470 testCase->writeTimer()->stop();
473 if (TestCase::FSYNC == testCase->sync())
475 testCase->syncTimer()->start();
477 testCase->syncTimer()->stop();
479 else if (TestCase::SYNC == testCase->sync())
481 testCase->syncTimer()->start();
483 testCase->syncTimer()->stop();
489 bool testWrite(TestCase *testCase)
491 const size_t size = testCase->dataSize();
492 size_t chunk_size = testCase->chunkSize();
498 testCase->signalParentAndWait();
500 testCase->testTimer()->start();
501 for (size_t i = 0; i < testCase->iter(); ++i)
503 if (!writeData(data, i, testCase))
508 testCase->testTimer()->stop();
519 bool testReadWrite(TestCase *testCase)
522 return testRead(testCase);
524 return testWrite(testCase);
531 bool testOpenCreate(TestCase *testCase)
535 testCase->signalParentAndWait();
536 testCase->testTimer()->start();
538 for (size_t i = 0; i < testCase->iter(); ++i)
540 sprintf(filename, "%s/file-%d-%d", kTestDir, i, testCase->pid());
543 FADVISE(fd, 0, 0, testCase->fadvise());
545 if (testCase->truncateToSize())
547 ftruncate(fd, testCase->dataSize());
555 testCase->testTimer()->stop();
559 bool writeTestFile(TestCase *testCase, const char* filename) {
568 char * const chunk = new char[testCase->chunkSize()];
569 memset(chunk, 0xaa, testCase->chunkSize());
571 size_t left = testCase->dataSize();
574 size_t chunk_size = testCase->chunkSize();
608 bool testTraverse(TestCase *testCase) {
614 size_t depth = testCase->treeDepth();
626 writeTestFile(testCase, filepath);
630 testCase->signalParentAndWait();
631 testCase->testTimer()->start();
634 size_t iter = testCase->iter();
636 testCase->traverseTimer()->start();
661 testCase->traverseTimer()->stop();
676 testCase->testTimer()->stop();
684 android_test::TestCase testCase(kAppName);
688 parseCmdLine(argc, argv, &testCase);
689 printHeader(argc, argv, testCase);
691 printf("# File size %d kbytes\n", testCase.dataSize() / 1024);
692 printf("# Chunk size %d kbytes\n", testCase.chunkSize() / 1024);
693 printf("# Sync: %s\n", testCase.syncAsStr());
695 if (!testCase.cpuScaling())
700 switch(testCase.type()) {
702 testCase.mTestBody = testWrite;
705 testCase.mTestBody = testRead;
708 testCase.mTestBody = testOpenCreate;
711 testCase.mTestBody = testReadWrite;
714 testCase.mTestBody = testTraverse;
717 fprintf(stderr, "Unknown test type %s", testCase.name());
721 testCase.createTimers();
725 ok = testCase.runTest();