Re: [FFmpeg-devel] [PATCH 1/2] avutil/tests/opt: test negative values for INT and INT64 types

2024-03-03 Thread Stefano Sabatini
On date Tuesday 2024-02-27 10:59:46 -0300, James Almer wrote:
> Signed-off-by: James Almer 
> ---
>  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=",
> +"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.33
>  dbl=0.33
>  TestContext AVOptions:
> -  -num   E.. set num (from 0 to 100) 
> (default 0)
> +  -num   E.. set num (from -1 to 100) 
> (default 0)
>-toggleE.. set toggle (from 0 to 1) 
> (default 1)
>-rational E.. set rational (from 0 to 10) 
> (default 1/1)
>-string E.. set string (default "default")
> @@ -37,7 +37,7 @@ TestContext AVOptions:
>-binE.. set binary value
>-bin1   E.. set binary value
>-bin2   E.. set binary value
> -  -num64   E.. set num 64bit (from 0 to 100) 
> (default 1)
> +  -num64   E.. set num 64bit (from -1 to 100) 
> (default 1)
>-flt E.. set float (from 0 to 100) 
> (default 0.33)
>-dblE.. set double (from 0 to 100) 
> (default 0.33)
>-bool1 E.. set boolean value (default 
> auto)
> @@ -312,6 +312,28 @@ Error 'bin=111'
>  Setting options string 'bin='
>  Setting entry with key 'bin' to value ''
>  OK'bin='
> +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'

[FFmpeg-devel] [PATCH 1/2] avutil/tests/opt: test negative values for INT and INT64 types

2024-02-27 Thread James Almer
Signed-off-by: James Almer 
---
 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=",
+"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.33
 dbl=0.33
 TestContext AVOptions:
-  -num   E.. set num (from 0 to 100) (default 
0)
+  -num   E.. set num (from -1 to 100) 
(default 0)
   -toggleE.. set toggle (from 0 to 1) 
(default 1)
   -rational E.. set rational (from 0 to 10) 
(default 1/1)
   -string E.. set string (default "default")
@@ -37,7 +37,7 @@ TestContext AVOptions:
   -binE.. set binary value
   -bin1   E.. set binary value
   -bin2   E.. set binary value
-  -num64   E.. set num 64bit (from 0 to 100) 
(default 1)
+  -num64   E.. set num 64bit (from -1 to 100) 
(default 1)
   -flt E.. set float (from 0 to 100) 
(default 0.33)
   -dblE.. set double (from 0 to 100) 
(default 0.33)
   -bool1 E.. set boolean value (default auto)
@@ -312,6 +312,28 @@ Error 'bin=111'
 Setting options string 'bin='
 Setting entry with key 'bin' to value ''
 OK'bin='
+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.00 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