Message ID | 20240227135947.503-1-jamrial@gmail.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel,1/2] avutil/tests/opt: test negative values for INT and INT64 types | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
On date Tuesday 2024-02-27 10:59:46 -0300, James Almer wrote: > Signed-off-by: James Almer <jamrial@gmail.com> > --- > libavutil/tests/opt.c | 11 +++++++++-- > tests/ref/fate/opt | 35 ++++++++++++++++++++++++++++++----- > 2 files changed, 39 insertions(+), 7 deletions(-) > > diff --git a/libavutil/tests/opt.c b/libavutil/tests/opt.c > index e2582cc93d..a914d0359a 100644 > --- a/libavutil/tests/opt.c > +++ b/libavutil/tests/opt.c > @@ -66,7 +66,7 @@ typedef struct TestContext { > #define TEST_FLAG_MU 04 > > static const AVOption test_options[]= { > - {"num", "set num", OFFSET(num), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 100, 1 }, > + {"num", "set num", OFFSET(num), AV_OPT_TYPE_INT, { .i64 = 0 }, -1, 100, 1 }, > {"toggle", "set toggle", OFFSET(toggle), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, 1 }, > {"rational", "set rational", OFFSET(rational), AV_OPT_TYPE_RATIONAL, { .dbl = 1 }, 0, 10, 1 }, > {"string", "set string", OFFSET(string), AV_OPT_TYPE_STRING, { .str = "default" }, CHAR_MIN, CHAR_MAX, 1 }, > @@ -85,7 +85,7 @@ static const AVOption test_options[]= { > {"bin", "set binary value", OFFSET(binary), AV_OPT_TYPE_BINARY, { .str="62696e00" }, 0, 0, 1 }, > {"bin1", "set binary value", OFFSET(binary1), AV_OPT_TYPE_BINARY, { .str=NULL }, 0, 0, 1 }, > {"bin2", "set binary value", OFFSET(binary2), AV_OPT_TYPE_BINARY, { .str="" }, 0, 0, 1 }, > - {"num64", "set num 64bit", OFFSET(num64), AV_OPT_TYPE_INT64, { .i64 = 1 }, 0, 100, 1 }, > + {"num64", "set num 64bit", OFFSET(num64), AV_OPT_TYPE_INT64, { .i64 = 1 }, -1, 100, 1 }, > {"flt", "set float", OFFSET(flt), AV_OPT_TYPE_FLOAT, { .dbl = 1.0 / 3 }, 0, 100, 1 }, > {"dbl", "set double", OFFSET(dbl), AV_OPT_TYPE_DOUBLE, { .dbl = 1.0 / 3 }, 0, 100, 1 }, > {"bool1", "set boolean value", OFFSET(bool1), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, 1 }, > @@ -285,10 +285,17 @@ int main(void) > "bin=boguss", > "bin=111", > "bin=ffff", > + "num=bogus", > + "num=44", > + "num=44.4", > + "num=-1", > + "num=-2", > + "num=101", > "num64=bogus", > "num64=44", > "num64=44.4", > "num64=-1", > + "num64=-2", > "num64=101", > "flt=bogus", > "flt=2", > diff --git a/tests/ref/fate/opt b/tests/ref/fate/opt > index 832f9cc8a9..2da155aa2b 100644 > --- a/tests/ref/fate/opt > +++ b/tests/ref/fate/opt > @@ -18,7 +18,7 @@ num64=1 > flt=0.333333 > dbl=0.333333 > TestContext AVOptions: > - -num <int> E.......... set num (from 0 to 100) (default 0) > + -num <int> E.......... set num (from -1 to 100) (default 0) > -toggle <int> E.......... set toggle (from 0 to 1) (default 1) > -rational <rational> E.......... set rational (from 0 to 10) (default 1/1) > -string <string> E.......... set string (default "default") > @@ -37,7 +37,7 @@ TestContext AVOptions: > -bin <binary> E.......... set binary value > -bin1 <binary> E.......... set binary value > -bin2 <binary> E.......... set binary value > - -num64 <int64> E.......... set num 64bit (from 0 to 100) (default 1) > + -num64 <int64> E.......... set num 64bit (from -1 to 100) (default 1) > -flt <float> E.......... set float (from 0 to 100) (default 0.333333) > -dbl <double> E.......... set double (from 0 to 100) (default 0.333333) > -bool1 <boolean> E.......... set boolean value (default auto) > @@ -312,6 +312,28 @@ Error 'bin=111' > Setting options string 'bin=ffff' > Setting entry with key 'bin' to value 'ffff' > OK 'bin=ffff' > +Setting options string 'num=bogus' > +Setting entry with key 'num' to value 'bogus' > +Undefined constant or missing '(' in 'bogus' > +Unable to parse option value "bogus" > +Error 'num=bogus' > +Setting options string 'num=44' > +Setting entry with key 'num' to value '44' > +OK 'num=44' > +Setting options string 'num=44.4' > +Setting entry with key 'num' to value '44.4' > +OK 'num=44.4' > +Setting options string 'num=-1' > +Setting entry with key 'num' to value '-1' > +OK 'num=-1' > +Setting options string 'num=-2' > +Setting entry with key 'num' to value '-2' > +Value -2.000000 for parameter 'num' out of range [-1 - 100] > +Error 'num=-2' > +Setting options string 'num=101' > +Setting entry with key 'num' to value '101' > +Value 101.000000 for parameter 'num' out of range [-1 - 100] > +Error 'num=101' > Setting options string 'num64=bogus' > Setting entry with key 'num64' to value 'bogus' > Undefined constant or missing '(' in 'bogus' > @@ -325,11 +347,14 @@ Setting entry with key 'num64' to value '44.4' > OK 'num64=44.4' > Setting options string 'num64=-1' > Setting entry with key 'num64' to value '-1' > -Value -1.000000 for parameter 'num64' out of range [0 - 100] > -Error 'num64=-1' > +OK 'num64=-1' > +Setting options string 'num64=-2' > +Setting entry with key 'num64' to value '-2' > +Value -2.000000 for parameter 'num64' out of range [-1 - 100] > +Error 'num64=-2' > Setting options string 'num64=101' > Setting entry with key 'num64' to value '101' > -Value 101.000000 for parameter 'num64' out of range [0 - 100] > +Value 101.000000 for parameter 'num64' out of range [-1 - 100] > Error 'num64=101' > Setting options string 'flt=bogus' > Setting entry with key 'flt' to value 'bogus' LGTM.
diff --git a/libavutil/tests/opt.c b/libavutil/tests/opt.c index e2582cc93d..a914d0359a 100644 --- a/libavutil/tests/opt.c +++ b/libavutil/tests/opt.c @@ -66,7 +66,7 @@ typedef struct TestContext { #define TEST_FLAG_MU 04 static const AVOption test_options[]= { - {"num", "set num", OFFSET(num), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 100, 1 }, + {"num", "set num", OFFSET(num), AV_OPT_TYPE_INT, { .i64 = 0 }, -1, 100, 1 }, {"toggle", "set toggle", OFFSET(toggle), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, 1 }, {"rational", "set rational", OFFSET(rational), AV_OPT_TYPE_RATIONAL, { .dbl = 1 }, 0, 10, 1 }, {"string", "set string", OFFSET(string), AV_OPT_TYPE_STRING, { .str = "default" }, CHAR_MIN, CHAR_MAX, 1 }, @@ -85,7 +85,7 @@ static const AVOption test_options[]= { {"bin", "set binary value", OFFSET(binary), AV_OPT_TYPE_BINARY, { .str="62696e00" }, 0, 0, 1 }, {"bin1", "set binary value", OFFSET(binary1), AV_OPT_TYPE_BINARY, { .str=NULL }, 0, 0, 1 }, {"bin2", "set binary value", OFFSET(binary2), AV_OPT_TYPE_BINARY, { .str="" }, 0, 0, 1 }, - {"num64", "set num 64bit", OFFSET(num64), AV_OPT_TYPE_INT64, { .i64 = 1 }, 0, 100, 1 }, + {"num64", "set num 64bit", OFFSET(num64), AV_OPT_TYPE_INT64, { .i64 = 1 }, -1, 100, 1 }, {"flt", "set float", OFFSET(flt), AV_OPT_TYPE_FLOAT, { .dbl = 1.0 / 3 }, 0, 100, 1 }, {"dbl", "set double", OFFSET(dbl), AV_OPT_TYPE_DOUBLE, { .dbl = 1.0 / 3 }, 0, 100, 1 }, {"bool1", "set boolean value", OFFSET(bool1), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, 1 }, @@ -285,10 +285,17 @@ int main(void) "bin=boguss", "bin=111", "bin=ffff", + "num=bogus", + "num=44", + "num=44.4", + "num=-1", + "num=-2", + "num=101", "num64=bogus", "num64=44", "num64=44.4", "num64=-1", + "num64=-2", "num64=101", "flt=bogus", "flt=2", diff --git a/tests/ref/fate/opt b/tests/ref/fate/opt index 832f9cc8a9..2da155aa2b 100644 --- a/tests/ref/fate/opt +++ b/tests/ref/fate/opt @@ -18,7 +18,7 @@ num64=1 flt=0.333333 dbl=0.333333 TestContext AVOptions: - -num <int> E.......... set num (from 0 to 100) (default 0) + -num <int> E.......... set num (from -1 to 100) (default 0) -toggle <int> E.......... set toggle (from 0 to 1) (default 1) -rational <rational> E.......... set rational (from 0 to 10) (default 1/1) -string <string> E.......... set string (default "default") @@ -37,7 +37,7 @@ TestContext AVOptions: -bin <binary> E.......... set binary value -bin1 <binary> E.......... set binary value -bin2 <binary> E.......... set binary value - -num64 <int64> E.......... set num 64bit (from 0 to 100) (default 1) + -num64 <int64> E.......... set num 64bit (from -1 to 100) (default 1) -flt <float> E.......... set float (from 0 to 100) (default 0.333333) -dbl <double> E.......... set double (from 0 to 100) (default 0.333333) -bool1 <boolean> E.......... set boolean value (default auto) @@ -312,6 +312,28 @@ Error 'bin=111' Setting options string 'bin=ffff' Setting entry with key 'bin' to value 'ffff' OK 'bin=ffff' +Setting options string 'num=bogus' +Setting entry with key 'num' to value 'bogus' +Undefined constant or missing '(' in 'bogus' +Unable to parse option value "bogus" +Error 'num=bogus' +Setting options string 'num=44' +Setting entry with key 'num' to value '44' +OK 'num=44' +Setting options string 'num=44.4' +Setting entry with key 'num' to value '44.4' +OK 'num=44.4' +Setting options string 'num=-1' +Setting entry with key 'num' to value '-1' +OK 'num=-1' +Setting options string 'num=-2' +Setting entry with key 'num' to value '-2' +Value -2.000000 for parameter 'num' out of range [-1 - 100] +Error 'num=-2' +Setting options string 'num=101' +Setting entry with key 'num' to value '101' +Value 101.000000 for parameter 'num' out of range [-1 - 100] +Error 'num=101' Setting options string 'num64=bogus' Setting entry with key 'num64' to value 'bogus' Undefined constant or missing '(' in 'bogus' @@ -325,11 +347,14 @@ Setting entry with key 'num64' to value '44.4' OK 'num64=44.4' Setting options string 'num64=-1' Setting entry with key 'num64' to value '-1' -Value -1.000000 for parameter 'num64' out of range [0 - 100] -Error 'num64=-1' +OK 'num64=-1' +Setting options string 'num64=-2' +Setting entry with key 'num64' to value '-2' +Value -2.000000 for parameter 'num64' out of range [-1 - 100] +Error 'num64=-2' Setting options string 'num64=101' Setting entry with key 'num64' to value '101' -Value 101.000000 for parameter 'num64' out of range [0 - 100] +Value 101.000000 for parameter 'num64' out of range [-1 - 100] Error 'num64=101' Setting options string 'flt=bogus' Setting entry with key 'flt' to value 'bogus'
Signed-off-by: James Almer <jamrial@gmail.com> --- libavutil/tests/opt.c | 11 +++++++++-- tests/ref/fate/opt | 35 ++++++++++++++++++++++++++++++----- 2 files changed, 39 insertions(+), 7 deletions(-)