aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas George <nicolas.george@normalesup.org>2012-04-16 12:17:51 +0200
committerNicolas George <nicolas.george@normalesup.org>2012-04-23 14:39:01 +0200
commit9246896f7778bc8002b08a36d004854bf1426fbf (patch)
tree73211f706f457c1e6d22a73995585399fe0efeba
parent99f29108d31b9e6fc9687a7401446097b31e9131 (diff)
downloadffmpeg-9246896f7778bc8002b08a36d004854bf1426fbf.tar.gz
parseutils: add FATE test.
-rw-r--r--libavutil/parseutils.c14
-rw-r--r--tests/fate/libavutil.mak4
-rw-r--r--tests/ref/fate/parseutils64
3 files changed, 82 insertions, 0 deletions
diff --git a/libavutil/parseutils.c b/libavutil/parseutils.c
index df737f6852..eae5584a92 100644
--- a/libavutil/parseutils.c
+++ b/libavutil/parseutils.c
@@ -31,6 +31,13 @@
#include "random_seed.h"
#include "parseutils.h"
+#ifdef TEST
+
+#define av_get_random_seed av_get_random_seed_deterministic
+static uint32_t av_get_random_seed_deterministic(void);
+
+#endif
+
int av_parse_ratio(AVRational *q, const char *str, int max,
int log_offset, void *log_ctx)
{
@@ -677,6 +684,13 @@ int av_find_info_tag(char *arg, int arg_size, const char *tag1, const char *info
#ifdef TEST
+static uint32_t random = MKTAG('L','A','V','U');
+
+static uint32_t av_get_random_seed_deterministic(void)
+{
+ return random = random * 1664525 + 1013904223;
+}
+
#undef printf
int main(void)
diff --git a/tests/fate/libavutil.mak b/tests/fate/libavutil.mak
index 2b49f07c40..343d456386 100644
--- a/tests/fate/libavutil.mak
+++ b/tests/fate/libavutil.mak
@@ -33,6 +33,10 @@ FATE_LIBAVUTIL += fate-md5
fate-md5: libavutil/md5-test$(EXESUF)
fate-md5: CMD = run libavutil/md5-test
+FATE_LIBAVUTIL += fate-parseutils
+fate-parseutils: libavutil/parseutils-test$(EXESUF)
+fate-parseutils: CMD = run libavutil/parseutils-test
+
FATE_LIBAVUTIL += fate-random_seed
fate-random_seed: libavutil/random_seed-test$(EXESUF)
fate-random_seed: CMD = run libavutil/random_seed-test
diff --git a/tests/ref/fate/parseutils b/tests/ref/fate/parseutils
new file mode 100644
index 0000000000..6e14c91671
--- /dev/null
+++ b/tests/ref/fate/parseutils
@@ -0,0 +1,64 @@
+Testing av_parse_video_rate()
+'-inf' -> -1/0 ret:-22
+'inf' -> 1/0 ret:-22
+'nan' -> 0/0 ret:-22
+'123/0' -> 1/0 ret:-22
+'-123 / 0' -> -1/0 ret:-22
+'' -> 0/0 ret:-22
+'/' -> 0/0 ret:-22
+' 123 / 321' -> 41/107 ret:0
+'foo/foo' -> 0/0 ret:-22
+'foo/1' -> 0/0 ret:-22
+'1/foo' -> 1/0 ret:-22
+'0/0' -> 0/0 ret:-22
+'/0' -> 0/0 ret:-22
+'1/' -> 1/0 ret:-22
+'1' -> 1/1 ret:0
+'0' -> 0/1 ret:-22
+'-123/123' -> -1/1 ret:-22
+'-foo' -> 0/0 ret:-22
+'123.23' -> 12323/100 ret:0
+'.23' -> 23/100 ret:0
+'-.23' -> -23/100 ret:-22
+'-0.234' -> -117/500 ret:-22
+'-0.0000001' -> 0/1 ret:-22
+' 21332.2324 ' -> 917286/43 ret:0
+' -21332.2324 ' -> -917286/43 ret:-22
+
+Testing av_parse_color()
+bikeshed -> R(80) G(64) B(140) A(59)
+RaNdOm -> R(185) G(88) B(148) A(94)
+foo -> error
+red -> R(255) G(0) B(0) A(255)
+Red -> error
+RED -> R(255) G(0) B(0) A(255)
+Violet -> R(238) G(130) B(238) A(255)
+Yellow -> R(255) G(255) B(0) A(255)
+Red -> R(255) G(0) B(0) A(255)
+0x000000 -> R(0) G(0) B(0) A(255)
+0x0000000 -> error
+0xff000000 -> R(255) G(0) B(0) A(0)
+0x3e34ff -> R(62) G(52) B(255) A(255)
+0x3e34ffaa -> R(62) G(52) B(255) A(170)
+0xffXXee -> error
+0xfoobar -> error
+0xffffeeeeeeee -> error
+#ff0000 -> R(255) G(0) B(0) A(255)
+#ffXX00 -> error
+ff0000 -> R(255) G(0) B(0) A(255)
+ffXX00 -> error
+red@foo -> error
+random@10 -> error
+0xff0000@1.0 -> R(255) G(0) B(0) A(255)
+red@ -> error
+red@0xfff -> error
+red@0xf -> R(255) G(0) B(0) A(15)
+red@2 -> error
+red@0.1 -> R(255) G(0) B(0) A(25)
+red@-1 -> error
+red@0.5 -> R(255) G(0) B(0) A(127)
+red@1.0 -> R(255) G(0) B(0) A(255)
+red@256 -> error
+red@10foo -> error
+red@-1.0 -> error
+red@-0.0 -> R(255) G(0) B(0) A(0)