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

James Almer jamrial at gmail.com
Tue Feb 27 22:30:38 EET 2024


Signed-off-by: James Almer <jamrial at 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'
-- 
2.43.2



More information about the ffmpeg-devel mailing list