1*288bf522SAndroid Build Coastguard Worker /* 2*288bf522SAndroid Build Coastguard Worker * Copyright (C) 2010 The Android Open Source Project 3*288bf522SAndroid Build Coastguard Worker * 4*288bf522SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*288bf522SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*288bf522SAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*288bf522SAndroid Build Coastguard Worker * 8*288bf522SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*288bf522SAndroid Build Coastguard Worker * 10*288bf522SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*288bf522SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*288bf522SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*288bf522SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*288bf522SAndroid Build Coastguard Worker * limitations under the License. 15*288bf522SAndroid Build Coastguard Worker * 16*288bf522SAndroid Build Coastguard Worker */ 17*288bf522SAndroid Build Coastguard Worker 18*288bf522SAndroid Build Coastguard Worker #ifndef _TESTUTIL_H_ 19*288bf522SAndroid Build Coastguard Worker #define _TESTUTIL_H_ 20*288bf522SAndroid Build Coastguard Worker 21*288bf522SAndroid Build Coastguard Worker #include <stdint.h> 22*288bf522SAndroid Build Coastguard Worker #include <stdio.h> 23*288bf522SAndroid Build Coastguard Worker #include <sys/time.h> 24*288bf522SAndroid Build Coastguard Worker 25*288bf522SAndroid Build Coastguard Worker __BEGIN_DECLS 26*288bf522SAndroid Build Coastguard Worker 27*288bf522SAndroid Build Coastguard Worker // Time Utilities 28*288bf522SAndroid Build Coastguard Worker struct timespec double2ts(double amt); 29*288bf522SAndroid Build Coastguard Worker struct timeval double2tv(double amt); 30*288bf522SAndroid Build Coastguard Worker double ts2double(const struct timespec *val); 31*288bf522SAndroid Build Coastguard Worker double tv2double(const struct timeval *val); 32*288bf522SAndroid Build Coastguard Worker struct timespec tsDelta(const struct timespec *first, 33*288bf522SAndroid Build Coastguard Worker const struct timespec *second); 34*288bf522SAndroid Build Coastguard Worker struct timeval tvDelta(const struct timeval *first, 35*288bf522SAndroid Build Coastguard Worker const struct timeval *second); 36*288bf522SAndroid Build Coastguard Worker 37*288bf522SAndroid Build Coastguard Worker void testDelay(float amt); 38*288bf522SAndroid Build Coastguard Worker void testDelaySpin(float amt); 39*288bf522SAndroid Build Coastguard Worker 40*288bf522SAndroid Build Coastguard Worker // Pseudo Random Utilities 41*288bf522SAndroid Build Coastguard Worker int testRandBool(void); 42*288bf522SAndroid Build Coastguard Worker uint32_t testRand(void); 43*288bf522SAndroid Build Coastguard Worker uint32_t testRandMod(uint32_t mod); 44*288bf522SAndroid Build Coastguard Worker double testRandFract(void); 45*288bf522SAndroid Build Coastguard Worker 46*288bf522SAndroid Build Coastguard Worker // Testcase Output 47*288bf522SAndroid Build Coastguard Worker void testSetLogCatTag(const char *tag); 48*288bf522SAndroid Build Coastguard Worker const char *testGetLogCatTag(void); 49*288bf522SAndroid Build Coastguard Worker void testPrint(FILE *stream, const char *fmt, ...); 50*288bf522SAndroid Build Coastguard Worker #define testPrintI(...) do { \ 51*288bf522SAndroid Build Coastguard Worker testPrint(stdout, __VA_ARGS__); \ 52*288bf522SAndroid Build Coastguard Worker } while (0) 53*288bf522SAndroid Build Coastguard Worker #define testPrintE(...) do { \ 54*288bf522SAndroid Build Coastguard Worker testPrint(stderr, __VA_ARGS__); \ 55*288bf522SAndroid Build Coastguard Worker } while (0) 56*288bf522SAndroid Build Coastguard Worker 57*288bf522SAndroid Build Coastguard Worker // Hex Dump 58*288bf522SAndroid Build Coastguard Worker void testXDump(const void *buf, size_t size); 59*288bf522SAndroid Build Coastguard Worker void testXDumpSetIndent(uint8_t indent); 60*288bf522SAndroid Build Coastguard Worker uint8_t testXDumpGetIndent(void); 61*288bf522SAndroid Build Coastguard Worker void testXDumpSetOffset(uint64_t offset); 62*288bf522SAndroid Build Coastguard Worker uint64_t testXDumpGetOffset(void); 63*288bf522SAndroid Build Coastguard Worker 64*288bf522SAndroid Build Coastguard Worker // Command Execution 65*288bf522SAndroid Build Coastguard Worker void testExecCmd(const char *cmd); 66*288bf522SAndroid Build Coastguard Worker 67*288bf522SAndroid Build Coastguard Worker __END_DECLS 68*288bf522SAndroid Build Coastguard Worker 69*288bf522SAndroid Build Coastguard Worker #endif 70