Index: webrtc/modules/audio_coding/codecs/isac/fix/test/kenny.cc |
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/test/kenny.cc b/webrtc/modules/audio_coding/codecs/isac/fix/test/kenny.cc |
index 065bf09efd2b92fa4b2b8bbb24874493feeb0661..e39f1efa26c8eee1623ef7950ccf71e00f870e5c 100644 |
--- a/webrtc/modules/audio_coding/codecs/isac/fix/test/kenny.cc |
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/test/kenny.cc |
@@ -15,6 +15,7 @@ |
#include <ctype.h> |
#include "webrtc/modules/audio_coding/codecs/isac/fix/include/isacfix.h" |
+#include "webrtc/test/gtest.h" |
#include "webrtc/test/testsupport/perf_test.h" |
// TODO(kma): Clean up the code and change benchmarking the whole codec to |
@@ -41,6 +42,11 @@ int readframe(int16_t *data, FILE *inp, int length) { |
return status; |
} |
+// Globals needed because gtest does not provide access to argv. |
+// This should be reworked to use flags. |
+static int global_argc; |
+static char **global_argv; |
+ |
/* Struct for bottleneck model */ |
typedef struct { |
uint32_t send_time; /* samples */ |
@@ -92,8 +98,9 @@ void get_arrival_time2(int current_framesamples, |
BN_data->rtp_number++; |
} |
-int main(int argc, char* argv[]) |
-{ |
+TEST(IsacFixTest, Kenny) { |
+ int argc = global_argc; |
+ char **argv = global_argv; |
char inname[100], outname[100], outbitsname[100], bottleneck_file[100]; |
FILE *inp, *outp, *f_bn, *outbits; |
@@ -223,7 +230,7 @@ int main(int argc, char* argv[]) |
printf("outfile : Speech output file\n\n"); |
printf("Example usage : \n\n"); |
printf("%s -I bottleneck.txt speechIn.pcm speechOut.pcm\n\n", argv[0]); |
- exit(0); |
+ exit(1); |
} |
@@ -250,7 +257,7 @@ int main(int argc, char* argv[]) |
if ((rateBPS < 10000) || (rateBPS > 32000)) { |
printf("\n%d is not a initial rate. " |
"Valid values are in the range 10000 to 32000.\n", rateBPS); |
- exit(0); |
+ exit(1); |
} |
printf("\nNew initial rate: %d\n", rateBPS); |
i++; |
@@ -262,7 +269,7 @@ int main(int argc, char* argv[]) |
if ((framesize != 30) && (framesize != 60)) { |
printf("\n%d is not a valid frame length. " |
"Valid length are 30 and 60 msec.\n", framesize); |
- exit(0); |
+ exit(1); |
} |
printf("\nFrame Length: %d\n", framesize); |
i++; |
@@ -295,7 +302,7 @@ int main(int argc, char* argv[]) |
if (testNum < 1 || testNum > 10) { |
printf("\n%d is not a valid Fault Scenario number." |
" Valid Fault Scenarios are numbered 1-10.\n", testNum); |
- exit(0); |
+ exit(1); |
} |
i++; |
} |
@@ -306,7 +313,7 @@ int main(int argc, char* argv[]) |
packetLossPercent = atoi( argv[i+1] ); |
if( (packetLossPercent < 0) | (packetLossPercent > 100) ) { |
printf( "\nInvalid packet loss perentage \n" ); |
- exit( 0 ); |
+ exit( 1 ); |
} |
if( packetLossPercent > 0 ) { |
printf( "\nSimulating %d %% of independent packet loss\n", |
@@ -319,8 +326,7 @@ int main(int argc, char* argv[]) |
readLoss = 1; |
plFile = fopen( argv[i+1], "rb" ); |
if( plFile == NULL ) { |
- printf( "\n couldn't open the frameloss file: %s\n", argv[i+1] ); |
- exit( 0 ); |
+ FAIL() << "Couldn't open the frameloss file: " << argv[i+1]; |
} |
printf( "\nSimulating packet loss through the given " |
"channel file: %s\n", argv[i+1] ); |
@@ -339,8 +345,7 @@ int main(int argc, char* argv[]) |
sscanf(argv[i + 1], "%s", gns_file); |
fp_gns = fopen(gns_file, "rb"); |
if (fp_gns == NULL) { |
- printf("Cannot read file %s.\n", gns_file); |
- exit(0); |
+ FAIL() << "Cannot read file " << gns_file << "."; |
} |
gns = 1; |
i++; |
@@ -361,7 +366,7 @@ int main(int argc, char* argv[]) |
} else if (testCE < 1 || testCE > 3) { |
printf("\n%d is not a valid CE-test number, valid Fault " |
"Scenarios are numbered 1-3\n", testCE); |
- exit(0); |
+ exit(1); |
} |
i++; |
} |
@@ -381,7 +386,8 @@ int main(int argc, char* argv[]) |
if (f_bn == NULL) { |
printf("No value provided for BottleNeck and cannot read file %s\n", |
bottleneck_file); |
- exit(0); |
+ exit(0); // TODO(oprypin): don't silence this error |
+ // FAIL() << "Cannot read file " << bottleneck_file; |
} else { |
int aux_var; |
printf("reading bottleneck rates from file %s\n\n",bottleneck_file); |
@@ -389,7 +395,7 @@ int main(int argc, char* argv[]) |
/* Set pointer to beginning of file */ |
fseek(f_bn, 0L, SEEK_SET); |
if (fscanf(f_bn, "%d", &aux_var) == EOF) { |
- exit(0); |
+ FAIL(); |
} |
} |
bottleneck = (int16_t)aux_var; |
@@ -423,17 +429,14 @@ int main(int argc, char* argv[]) |
h++; |
} |
if ((inp = fopen(inname,"rb")) == NULL) { |
- printf(" iSAC: Cannot read file %s\n", inname); |
- exit(1); |
+ FAIL() << " iSAC: Cannot read file " << inname; |
} |
if ((outp = fopen(outname,"wb")) == NULL) { |
- printf(" iSAC: Cannot write file %s\n", outname); |
- exit(1); |
+ FAIL() << " iSAC: Cannot write file " << outname; |
} |
if ((outbits = fopen(outbitsname,"wb")) == NULL) { |
- printf(" iSAC: Cannot write file %s\n", outbitsname); |
- exit(1); |
+ FAIL() << " iSAC: Cannot write file " << outbitsname; |
} |
printf("\nInput:%s\nOutput:%s\n\n", inname, outname); |
@@ -512,8 +515,7 @@ int main(int argc, char* argv[]) |
if (err < 0) { |
/* exit if returned with error */ |
errtype=WebRtcIsacfix_GetErrorCode(ISAC_main_inst); |
- printf("\n\n Error in SetMaxPayloadSize: %d.\n\n", errtype); |
- exit(EXIT_FAILURE); |
+ FAIL() << "Error in SetMaxPayloadSize: " << errtype; |
} |
} |
if (payloadRate != 0) { |
@@ -521,8 +523,7 @@ int main(int argc, char* argv[]) |
if (err < 0) { |
/* exit if returned with error */ |
errtype=WebRtcIsacfix_GetErrorCode(ISAC_main_inst); |
- printf("\n\n Error in SetMaxRateInBytes: %d.\n\n", errtype); |
- exit(EXIT_FAILURE); |
+ FAIL() << "Error in SetMaxRateInBytes: " << errtype; |
} |
} |
@@ -624,7 +625,7 @@ int main(int argc, char* argv[]) |
stream_len = static_cast<size_t>(stream_len_int); |
if (fwrite(streamdata, sizeof(char), stream_len, outbits) != |
stream_len) { |
- return -1; |
+ FAIL(); |
} |
} |
@@ -637,7 +638,7 @@ int main(int argc, char* argv[]) |
/* Set pointer to beginning of file */ |
fseek(f_bn, 0L, SEEK_SET); |
if (fscanf(f_bn, "%d", &aux_var) == EOF) { |
- exit(0); |
+ FAIL(); |
} |
} |
bottleneck = (int16_t)aux_var; |
@@ -674,7 +675,7 @@ int main(int argc, char* argv[]) |
if (fscanf(fp_gns, "%d", &cur_delay) == EOF) { |
fseek(fp_gns, 0L, SEEK_SET); |
if (fscanf(fp_gns, "%d", &cur_delay) == EOF) { |
- exit(0); |
+ FAIL(); |
} |
} |
} |
@@ -783,7 +784,7 @@ int main(int argc, char* argv[]) |
/* Write decoded speech frame to file */ |
if (fwrite(decoded, sizeof(int16_t), |
declen, outp) != (size_t)declen) { |
- return -1; |
+ FAIL(); |
} |
// fprintf( ratefile, "%f \n", stream_len / ( ((double)declen)/ |
// ((double)FS) ) * 8 ); |
@@ -835,5 +836,12 @@ int main(int argc, char* argv[]) |
WebRtcIsacfix_FreeInternal(ISAC_main_inst); |
} |
WebRtcIsacfix_Free(ISAC_main_inst); |
- return 0; |
+} |
+ |
+int main(int argc, char* argv[]) { |
+ ::testing::InitGoogleTest(&argc, argv); |
+ global_argc = argc; |
+ global_argv = argv; |
+ |
+ return RUN_ALL_TESTS(); |
} |