diff mbox series

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

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

Checks

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

Commit Message

James Almer Feb. 27, 2024, 1:59 p.m. UTC
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(-)

Comments

Stefano Sabatini March 3, 2024, 4:24 p.m. UTC | #1
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 mbox series

Patch

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'