diff mbox series

[FFmpeg-devel,4/7] avutil/tests/channel_layout: add some av_channel_from_string and av_channel_layout_from_string tests

Message ID 20240309215414.26699-4-cus@passwd.hu
State Accepted
Commit 0b3b8a19187cfa5a1671f4dc02d24e5681e3a01b
Headers show
Series [FFmpeg-devel,1/7] avutil/channel_layout: add AV_CHANNEL_LAYOUT_RETYPE_FLAG_CANONICAL | 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

Marton Balint March 9, 2024, 9:54 p.m. UTC
We lacked tests which supposed to fail, and there are some which should fail
but right now it does not. This will be fixed in a later commit.

Signed-off-by: Marton Balint <cus@passwd.hu>
---
 libavutil/tests/channel_layout.c | 26 ++++++++++++++++++++++++++
 tests/ref/fate/channel_layout    | 26 ++++++++++++++++++++++++++
 2 files changed, 52 insertions(+)
diff mbox series

Patch

diff --git a/libavutil/tests/channel_layout.c b/libavutil/tests/channel_layout.c
index d62b69a5db..14d36c71b5 100644
--- a/libavutil/tests/channel_layout.c
+++ b/libavutil/tests/channel_layout.c
@@ -255,6 +255,11 @@  int main(void)
     CHANNEL_FROM_STRING("USR63");
     CHANNEL_FROM_STRING("AMBI0");
     CHANNEL_FROM_STRING("AMBI1023");
+    CHANNEL_FROM_STRING("AMBI1024");
+    CHANNEL_FROM_STRING("Dummy");
+    CHANNEL_FROM_STRING("FL@Foo");
+    CHANNEL_FROM_STRING("Foo@FL");
+    CHANNEL_FROM_STRING("@FL");
 
     printf("\n==Native layouts==\n");
 
@@ -301,6 +306,9 @@  int main(void)
     CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "SL");
     CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "SR");
     CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "BC");
+    CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "@");
+    CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "@Foo");
+    CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "FL@Foo");
 
     printf("\nTesting av_channel_layout_index_from_string\n");
     CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "FL");
@@ -321,9 +329,27 @@  int main(void)
     printf("\nTesting av_channel_layout_from_string\n");
     CHANNEL_LAYOUT_FROM_STRING("FL+FR+FC+BL+BR+LFE");
     CHANNEL_LAYOUT_FROM_STRING("2 channels (FR+FL)");
+    CHANNEL_LAYOUT_FROM_STRING("2 channels (AMBI1023+FL)");
+    CHANNEL_LAYOUT_FROM_STRING("3 channels (FR+FL)");
+    CHANNEL_LAYOUT_FROM_STRING("-3 channels (FR+FL)");
+    CHANNEL_LAYOUT_FROM_STRING("0 channels ()");
+    CHANNEL_LAYOUT_FROM_STRING("2 channels (FL+FR");
     CHANNEL_LAYOUT_FROM_STRING("ambisonic 1+FR+FL");
     CHANNEL_LAYOUT_FROM_STRING("ambisonic 2+FC@Foo");
     CHANNEL_LAYOUT_FROM_STRING("FL@Foo+FR@Bar");
+    CHANNEL_LAYOUT_FROM_STRING("FL+stereo");
+    CHANNEL_LAYOUT_FROM_STRING("stereo+stereo");
+    CHANNEL_LAYOUT_FROM_STRING("stereo@Boo");
+    CHANNEL_LAYOUT_FROM_STRING("");
+    CHANNEL_LAYOUT_FROM_STRING("@");
+    CHANNEL_LAYOUT_FROM_STRING("@Dummy");
+    CHANNEL_LAYOUT_FROM_STRING("@FL");
+    CHANNEL_LAYOUT_FROM_STRING("Dummy");
+    CHANNEL_LAYOUT_FROM_STRING("Dummy@FL");
+    CHANNEL_LAYOUT_FROM_STRING("FR+Dummy");
+    CHANNEL_LAYOUT_FROM_STRING("FR+Dummy@FL");
+    CHANNEL_LAYOUT_FROM_STRING("FR+@FL");
+    CHANNEL_LAYOUT_FROM_STRING("FL+@");
     CHANNEL_LAYOUT_FROM_STRING("FR+FL@Foo+USR63@Foo");
 
     ret = av_channel_layout_copy(&layout2, &layout);
diff --git a/tests/ref/fate/channel_layout b/tests/ref/fate/channel_layout
index b98ccdb0f0..ea7ec6fa3c 100644
--- a/tests/ref/fate/channel_layout
+++ b/tests/ref/fate/channel_layout
@@ -56,6 +56,11 @@  With "FR":                                         1
 With "USR63":                                     63
 With "AMBI0":                                   1024
 With "AMBI1023":                                2047
+With "AMBI1024":                                  -1
+With "Dummy":                                     -1
+With "FL@Foo":                                    -1
+With "Foo@FL":                                    -1
+With "@FL":                                       -1
 
 ==Native layouts==
 
@@ -101,6 +106,9 @@  On "5.1(side)" layout with "LFE":                  3
 On "5.1(side)" layout with "SL":                   9
 On "5.1(side)" layout with "SR":                  10
 On "5.1(side)" layout with "BC":                  -1
+On "5.1(side)" layout with "@":                   -1
+On "5.1(side)" layout with "@Foo":                -1
+On "5.1(side)" layout with "FL@Foo":              -1
 
 Testing av_channel_layout_index_from_string
 On "5.1(side)" layout with "FL":                  0
@@ -121,9 +129,27 @@  On "5.1(side)" layout with AV_CH_LAYOUT_4POINT1:  0xf
 Testing av_channel_layout_from_string
 With "FL+FR+FC+BL+BR+LFE":                6 channels (FL+FR+FC+BL+BR+LFE)
 With "2 channels (FR+FL)":                             2 channels (FR+FL)
+With "2 channels (AMBI1023+FL)":                                     fail
+With "3 channels (FR+FL)":                                           fail
+With "-3 channels (FR+FL)":                                          fail
+With "0 channels ()":                                                fail
+With "2 channels (FL+FR":                                            fail
 With "ambisonic 1+FR+FL":                  ambisonic 1+2 channels (FR+FL)
 With "ambisonic 2+FC@Foo":                ambisonic 2+1 channels (FC@Foo)
 With "FL@Foo+FR@Bar":                          2 channels (FL@Foo+FR@Bar)
+With "FL+stereo":                                                    fail
+With "stereo+stereo":                                                fail
+With "stereo@Boo":                                                   fail
+With "":                                                             fail
+With "@":                                                            fail
+With "@Dummy":                                                       fail
+With "@FL":                                               1 channels (FL)
+With "Dummy":                                                        fail
+With "Dummy@FL":                                                     fail
+With "FR+Dummy":                                                     fail
+With "FR+Dummy@FL":                                       1 channels (FR)
+With "FR+@FL":                                      2 channels (FR+FL@FL)
+With "FL+@":                                                         fail
 With "FR+FL@Foo+USR63@Foo":              3 channels (FR+FL@Foo+USR63@Foo)
 
 Testing av_channel_layout_index_from_string