TJBench/TJUnitTest: Don't ignore mistyped args
diff --git a/ChangeLog.md b/ChangeLog.md
index 8ecd04f..10738b4 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -14,6 +14,10 @@
is selected along with the `-crop` option. That option does not currently work
with other output image formats.
+4. TJBench (both C and Java versions) will now display usage information if any
+command-line argument is unrecognized. This prevents the program from silently
+ignoring typos.
+
1.5.2
=====
diff --git a/java/TJBench.java b/java/TJBench.java
index 5185d65..ddc414c 100644
--- a/java/TJBench.java
+++ b/java/TJBench.java
@@ -721,37 +721,37 @@
if (argv[i].equalsIgnoreCase("-tile")) {
doTile = true; xformOpt |= TJTransform.OPT_CROP;
}
- if (argv[i].equalsIgnoreCase("-fastupsample")) {
+ else if (argv[i].equalsIgnoreCase("-fastupsample")) {
System.out.println("Using fast upsampling code\n");
flags |= TJ.FLAG_FASTUPSAMPLE;
}
- if (argv[i].equalsIgnoreCase("-fastdct")) {
+ else if (argv[i].equalsIgnoreCase("-fastdct")) {
System.out.println("Using fastest DCT/IDCT algorithm\n");
flags |= TJ.FLAG_FASTDCT;
}
- if (argv[i].equalsIgnoreCase("-accuratedct")) {
+ else if (argv[i].equalsIgnoreCase("-accuratedct")) {
System.out.println("Using most accurate DCT/IDCT algorithm\n");
flags |= TJ.FLAG_ACCURATEDCT;
}
- if (argv[i].equalsIgnoreCase("-rgb"))
+ else if (argv[i].equalsIgnoreCase("-rgb"))
pf = TJ.PF_RGB;
- if (argv[i].equalsIgnoreCase("-rgbx"))
+ else if (argv[i].equalsIgnoreCase("-rgbx"))
pf = TJ.PF_RGBX;
- if (argv[i].equalsIgnoreCase("-bgr"))
+ else if (argv[i].equalsIgnoreCase("-bgr"))
pf = TJ.PF_BGR;
- if (argv[i].equalsIgnoreCase("-bgrx"))
+ else if (argv[i].equalsIgnoreCase("-bgrx"))
pf = TJ.PF_BGRX;
- if (argv[i].equalsIgnoreCase("-xbgr"))
+ else if (argv[i].equalsIgnoreCase("-xbgr"))
pf = TJ.PF_XBGR;
- if (argv[i].equalsIgnoreCase("-xrgb"))
+ else if (argv[i].equalsIgnoreCase("-xrgb"))
pf = TJ.PF_XRGB;
- if (argv[i].equalsIgnoreCase("-bottomup"))
+ else if (argv[i].equalsIgnoreCase("-bottomup"))
flags |= TJ.FLAG_BOTTOMUP;
- if (argv[i].equalsIgnoreCase("-quiet"))
+ else if (argv[i].equalsIgnoreCase("-quiet"))
quiet = 1;
- if (argv[i].equalsIgnoreCase("-qq"))
+ else if (argv[i].equalsIgnoreCase("-qq"))
quiet = 2;
- if (argv[i].equalsIgnoreCase("-scale") && i < argv.length - 1) {
+ else if (argv[i].equalsIgnoreCase("-scale") && i < argv.length - 1) {
int temp1 = 0, temp2 = 0;
boolean match = false, scanned = true;
Scanner scanner = new Scanner(argv[++i]).useDelimiter("/");
@@ -774,25 +774,25 @@
} else
usage();
}
- if (argv[i].equalsIgnoreCase("-hflip"))
+ else if (argv[i].equalsIgnoreCase("-hflip"))
xformOp = TJTransform.OP_HFLIP;
- if (argv[i].equalsIgnoreCase("-vflip"))
+ else if (argv[i].equalsIgnoreCase("-vflip"))
xformOp = TJTransform.OP_VFLIP;
- if (argv[i].equalsIgnoreCase("-transpose"))
+ else if (argv[i].equalsIgnoreCase("-transpose"))
xformOp = TJTransform.OP_TRANSPOSE;
- if (argv[i].equalsIgnoreCase("-transverse"))
+ else if (argv[i].equalsIgnoreCase("-transverse"))
xformOp = TJTransform.OP_TRANSVERSE;
- if (argv[i].equalsIgnoreCase("-rot90"))
+ else if (argv[i].equalsIgnoreCase("-rot90"))
xformOp = TJTransform.OP_ROT90;
- if (argv[i].equalsIgnoreCase("-rot180"))
+ else if (argv[i].equalsIgnoreCase("-rot180"))
xformOp = TJTransform.OP_ROT180;
- if (argv[i].equalsIgnoreCase("-rot270"))
+ else if (argv[i].equalsIgnoreCase("-rot270"))
xformOp = TJTransform.OP_ROT270;
- if (argv[i].equalsIgnoreCase("-grayscale"))
+ else if (argv[i].equalsIgnoreCase("-grayscale"))
xformOpt |= TJTransform.OPT_GRAY;
- if (argv[i].equalsIgnoreCase("-nooutput"))
+ else if (argv[i].equalsIgnoreCase("-nooutput"))
xformOpt |= TJTransform.OPT_NOOUTPUT;
- if (argv[i].equalsIgnoreCase("-benchtime") && i < argv.length - 1) {
+ else if (argv[i].equalsIgnoreCase("-benchtime") && i < argv.length - 1) {
double temp = -1;
try {
temp = Double.parseDouble(argv[++i]);
@@ -802,11 +802,11 @@
else
usage();
}
- if (argv[i].equalsIgnoreCase("-yuv")) {
+ else if (argv[i].equalsIgnoreCase("-yuv")) {
System.out.println("Testing YUV planar encoding/decoding\n");
doYUV = true;
}
- if (argv[i].equalsIgnoreCase("-yuvpad") && i < argv.length - 1) {
+ else if (argv[i].equalsIgnoreCase("-yuvpad") && i < argv.length - 1) {
int temp = 0;
try {
temp = Integer.parseInt(argv[++i]);
@@ -814,7 +814,7 @@
if (temp >= 1)
yuvpad = temp;
}
- if (argv[i].equalsIgnoreCase("-subsamp") && i < argv.length - 1) {
+ else if (argv[i].equalsIgnoreCase("-subsamp") && i < argv.length - 1) {
i++;
if (argv[i].toUpperCase().startsWith("G"))
subsamp = TJ.SAMP_GRAY;
@@ -829,11 +829,11 @@
else if (argv[i].equals("411"))
subsamp = TJ.SAMP_411;
}
- if (argv[i].equalsIgnoreCase("-componly"))
+ else if (argv[i].equalsIgnoreCase("-componly"))
compOnly = true;
- if (argv[i].equalsIgnoreCase("-nowrite"))
+ else if (argv[i].equalsIgnoreCase("-nowrite"))
write = false;
- if (argv[i].equalsIgnoreCase("-warmup") && i < argv.length - 1) {
+ else if (argv[i].equalsIgnoreCase("-warmup") && i < argv.length - 1) {
double temp = -1;
try {
temp = Double.parseDouble(argv[++i]);
@@ -844,8 +844,7 @@
} else
usage();
}
- if (argv[i].equalsIgnoreCase("-?"))
- usage();
+ else usage();
}
}
diff --git a/java/TJUnitTest.java b/java/TJUnitTest.java
index 24be8eb..47ff7bb 100644
--- a/java/TJUnitTest.java
+++ b/java/TJUnitTest.java
@@ -902,15 +902,13 @@
for (int i = 0; i < argv.length; i++) {
if (argv[i].equalsIgnoreCase("-yuv"))
doYUV = true;
- if (argv[i].equalsIgnoreCase("-noyuvpad"))
+ else if (argv[i].equalsIgnoreCase("-noyuvpad"))
pad = 1;
- if (argv[i].substring(0, 1).equalsIgnoreCase("-h") ||
- argv[i].equalsIgnoreCase("-?"))
- usage();
- if (argv[i].equalsIgnoreCase("-bi")) {
+ else if (argv[i].equalsIgnoreCase("-bi")) {
bi = true;
testName = "javabitest";
- }
+ } else
+ usage();
}
if (doYUV)
_4byteFormats[4] = -1;
diff --git a/tjbench.c b/tjbench.c
index 21b297c..dfe6601 100644
--- a/tjbench.c
+++ b/tjbench.c
@@ -835,32 +835,32 @@
{
dotile=1; xformopt|=TJXOPT_CROP;
}
- if(!strcasecmp(argv[i], "-fastupsample"))
+ else if(!strcasecmp(argv[i], "-fastupsample"))
{
printf("Using fast upsampling code\n\n");
flags|=TJFLAG_FASTUPSAMPLE;
}
- if(!strcasecmp(argv[i], "-fastdct"))
+ else if(!strcasecmp(argv[i], "-fastdct"))
{
printf("Using fastest DCT/IDCT algorithm\n\n");
flags|=TJFLAG_FASTDCT;
}
- if(!strcasecmp(argv[i], "-accuratedct"))
+ else if(!strcasecmp(argv[i], "-accuratedct"))
{
printf("Using most accurate DCT/IDCT algorithm\n\n");
flags|=TJFLAG_ACCURATEDCT;
}
- if(!strcasecmp(argv[i], "-rgb")) pf=TJPF_RGB;
- if(!strcasecmp(argv[i], "-rgbx")) pf=TJPF_RGBX;
- if(!strcasecmp(argv[i], "-bgr")) pf=TJPF_BGR;
- if(!strcasecmp(argv[i], "-bgrx")) pf=TJPF_BGRX;
- if(!strcasecmp(argv[i], "-xbgr")) pf=TJPF_XBGR;
- if(!strcasecmp(argv[i], "-xrgb")) pf=TJPF_XRGB;
- if(!strcasecmp(argv[i], "-cmyk")) pf=TJPF_CMYK;
- if(!strcasecmp(argv[i], "-bottomup")) flags|=TJFLAG_BOTTOMUP;
- if(!strcasecmp(argv[i], "-quiet")) quiet=1;
- if(!strcasecmp(argv[i], "-qq")) quiet=2;
- if(!strcasecmp(argv[i], "-scale") && i<argc-1)
+ else if(!strcasecmp(argv[i], "-rgb")) pf=TJPF_RGB;
+ else if(!strcasecmp(argv[i], "-rgbx")) pf=TJPF_RGBX;
+ else if(!strcasecmp(argv[i], "-bgr")) pf=TJPF_BGR;
+ else if(!strcasecmp(argv[i], "-bgrx")) pf=TJPF_BGRX;
+ else if(!strcasecmp(argv[i], "-xbgr")) pf=TJPF_XBGR;
+ else if(!strcasecmp(argv[i], "-xrgb")) pf=TJPF_XRGB;
+ else if(!strcasecmp(argv[i], "-cmyk")) pf=TJPF_CMYK;
+ else if(!strcasecmp(argv[i], "-bottomup")) flags|=TJFLAG_BOTTOMUP;
+ else if(!strcasecmp(argv[i], "-quiet")) quiet=1;
+ else if(!strcasecmp(argv[i], "-qq")) quiet=2;
+ else if(!strcasecmp(argv[i], "-scale") && i<argc-1)
{
int temp1=0, temp2=0, match=0;
if(sscanf(argv[++i], "%d/%d", &temp1, &temp2)==2)
@@ -878,43 +878,42 @@
}
else usage(argv[0]);
}
- if(!strcasecmp(argv[i], "-hflip")) xformop=TJXOP_HFLIP;
- if(!strcasecmp(argv[i], "-vflip")) xformop=TJXOP_VFLIP;
- if(!strcasecmp(argv[i], "-transpose")) xformop=TJXOP_TRANSPOSE;
- if(!strcasecmp(argv[i], "-transverse")) xformop=TJXOP_TRANSVERSE;
- if(!strcasecmp(argv[i], "-rot90")) xformop=TJXOP_ROT90;
- if(!strcasecmp(argv[i], "-rot180")) xformop=TJXOP_ROT180;
- if(!strcasecmp(argv[i], "-rot270")) xformop=TJXOP_ROT270;
- if(!strcasecmp(argv[i], "-grayscale")) xformopt|=TJXOPT_GRAY;
- if(!strcasecmp(argv[i], "-custom")) customFilter=dummyDCTFilter;
- if(!strcasecmp(argv[i], "-nooutput")) xformopt|=TJXOPT_NOOUTPUT;
- if(!strcasecmp(argv[i], "-benchtime") && i<argc-1)
+ else if(!strcasecmp(argv[i], "-hflip")) xformop=TJXOP_HFLIP;
+ else if(!strcasecmp(argv[i], "-vflip")) xformop=TJXOP_VFLIP;
+ else if(!strcasecmp(argv[i], "-transpose")) xformop=TJXOP_TRANSPOSE;
+ else if(!strcasecmp(argv[i], "-transverse")) xformop=TJXOP_TRANSVERSE;
+ else if(!strcasecmp(argv[i], "-rot90")) xformop=TJXOP_ROT90;
+ else if(!strcasecmp(argv[i], "-rot180")) xformop=TJXOP_ROT180;
+ else if(!strcasecmp(argv[i], "-rot270")) xformop=TJXOP_ROT270;
+ else if(!strcasecmp(argv[i], "-grayscale")) xformopt|=TJXOPT_GRAY;
+ else if(!strcasecmp(argv[i], "-custom")) customFilter=dummyDCTFilter;
+ else if(!strcasecmp(argv[i], "-nooutput")) xformopt|=TJXOPT_NOOUTPUT;
+ else if(!strcasecmp(argv[i], "-benchtime") && i<argc-1)
{
double temp=atof(argv[++i]);
if(temp>0.0) benchtime=temp;
else usage(argv[0]);
}
- if(!strcasecmp(argv[i], "-warmup") && i<argc-1)
+ else if(!strcasecmp(argv[i], "-warmup") && i<argc-1)
{
double temp=atof(argv[++i]);
if(temp>=0.0) warmup=temp;
else usage(argv[0]);
printf("Warmup time = %.1f seconds\n\n", warmup);
}
- if(!strcmp(argv[i], "-?")) usage(argv[0]);
- if(!strcasecmp(argv[i], "-alloc")) flags&=(~TJFLAG_NOREALLOC);
- if(!strcasecmp(argv[i], "-bmp")) ext="bmp";
- if(!strcasecmp(argv[i], "-yuv"))
+ else if(!strcasecmp(argv[i], "-alloc")) flags&=(~TJFLAG_NOREALLOC);
+ else if(!strcasecmp(argv[i], "-bmp")) ext="bmp";
+ else if(!strcasecmp(argv[i], "-yuv"))
{
printf("Testing YUV planar encoding/decoding\n\n");
doyuv=1;
}
- if(!strcasecmp(argv[i], "-yuvpad") && i<argc-1)
+ else if(!strcasecmp(argv[i], "-yuvpad") && i<argc-1)
{
int temp=atoi(argv[++i]);
if(temp>=1) yuvpad=temp;
}
- if(!strcasecmp(argv[i], "-subsamp") && i<argc-1)
+ else if(!strcasecmp(argv[i], "-subsamp") && i<argc-1)
{
i++;
if(toupper(argv[i][0])=='G') subsamp=TJSAMP_GRAY;
@@ -931,8 +930,9 @@
}
}
}
- if(!strcasecmp(argv[i], "-componly")) componly=1;
- if(!strcasecmp(argv[i], "-nowrite")) dowrite=0;
+ else if(!strcasecmp(argv[i], "-componly")) componly=1;
+ else if(!strcasecmp(argv[i], "-nowrite")) dowrite=0;
+ else usage(argv[0]);
}
}
diff --git a/tjunittest.c b/tjunittest.c
index 7b2054e..f793796 100644
--- a/tjunittest.c
+++ b/tjunittest.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C)2009-2014 D. R. Commander. All Rights Reserved.
+ * Copyright (C)2009-2014, 2017 D. R. Commander. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
@@ -697,10 +697,9 @@
for(i=1; i<argc; i++)
{
if(!strcasecmp(argv[i], "-yuv")) doyuv=1;
- if(!strcasecmp(argv[i], "-noyuvpad")) pad=1;
- if(!strcasecmp(argv[i], "-alloc")) alloc=1;
- if(!strncasecmp(argv[i], "-h", 2) || !strcasecmp(argv[i], "-?"))
- usage(argv[0]);
+ else if(!strcasecmp(argv[i], "-noyuvpad")) pad=1;
+ else if(!strcasecmp(argv[i], "-alloc")) alloc=1;
+ else usage(argv[0]);
}
}
if(alloc) printf("Testing automatic buffer allocation\n");