@@ -57,47 +57,60 @@ int main(void)
5757
5858 void * ta_ctx = talloc_new (NULL );
5959
60- #define TEST_LANG_GUESS (filename , expected_lang , expected_start , expected_hi ) \
61- do { \
62- int start; \
63- bool hearing_impaired; \
64- bstr lang = mp_guess_lang_from_filename(bstr0(filename), &start, \
65- &hearing_impaired); \
66- assert_string_equal(bstrto0(ta_ctx, lang), expected_lang); \
67- assert_int_equal(start, expected_start); \
68- assert_true(hearing_impaired == expected_hi); \
60+ #define TEST_LANG_GUESS (filename , expected_lang , expected_start , expected_flags ) \
61+ do { \
62+ int start; \
63+ enum track_flags flags; \
64+ bstr lang = mp_guess_lang_from_filename(bstr0(filename), &start, &flags); \
65+ assert_string_equal(bstrto0(ta_ctx, lang), expected_lang); \
66+ assert_int_equal(start, expected_start); \
67+ assert_int_equal(flags, expected_flags); \
6968 } while (0)
7069
71- TEST_LANG_GUESS ("foo.en.srt" , "en" , 3 , false );
72- TEST_LANG_GUESS ("foo.eng.srt" , "eng" , 3 , false );
73- TEST_LANG_GUESS ("foo.e.srt" , "" , -1 , false );
74- TEST_LANG_GUESS ("foo.engg.srt" , "" , -1 , false );
75- TEST_LANG_GUESS ("foo.00.srt" , "" , -1 , false );
76- TEST_LANG_GUESS ("foo.srt" , "" , -1 , false );
77- TEST_LANG_GUESS (NULL , "" , -1 , false );
70+ TEST_LANG_GUESS ("foo.en.srt" , "en" , 3 , 0 );
71+ TEST_LANG_GUESS ("foo.eng.srt" , "eng" , 3 , 0 );
72+ TEST_LANG_GUESS ("foo.e.srt" , "" , -1 , 0 );
73+ TEST_LANG_GUESS ("foo.engg.srt" , "" , -1 , 0 );
74+ TEST_LANG_GUESS ("foo.00.srt" , "" , -1 , 0 );
75+ TEST_LANG_GUESS ("foo.srt" , "" , -1 , 0 );
76+ TEST_LANG_GUESS (NULL , "" , -1 , 0 );
7877
79- TEST_LANG_GUESS ("foo.en-US.srt" , "en-US" , 3 , false);
80- TEST_LANG_GUESS ("foo.en-US.hi.srt" , "en-US" , 3 , true);
81- TEST_LANG_GUESS ("foo.en-US.sdh.srt" , "en-US" , 3 , true);
82- TEST_LANG_GUESS ("foo.en-simple.srt" , "en-simple" , 3 , false);
83- TEST_LANG_GUESS ("foo.sgn-FSL.srt" , "sgn-FSL" , 3 , false);
84- TEST_LANG_GUESS ("foo.gsw-u-sd-chzh.srt" , "gsw-u-sd-chzh" , 3 , false);
85- TEST_LANG_GUESS ("foo.en-.srt" , "" , -1 , false);
86- TEST_LANG_GUESS ("foo.en-US-.srt" , "" , -1 , false);
87- TEST_LANG_GUESS ("foo.en-aaaaaaaaa.srt" , "" , -1 , false);
88- TEST_LANG_GUESS ("foo.en-0.srt" , "" , -1 , false);
78+ TEST_LANG_GUESS ("foo.en-US.srt" , "en-US" , 3 , 0 );
79+ TEST_LANG_GUESS ("foo.en-US.hi.srt" , "en-US" , 3 , TRACK_HEARING_IMPAIRED );
80+ TEST_LANG_GUESS ("foo.en-US.sdh.srt" , "en-US" , 3 , TRACK_HEARING_IMPAIRED );
81+ TEST_LANG_GUESS ("foo.en-US.forced.srt" , "en-US" , 3 , TRACK_FORCED );
82+ TEST_LANG_GUESS ("foo.en-US.forced.sdh.srt" , "en-US" , 3 , TRACK_HEARING_IMPAIRED | TRACK_FORCED );
83+ TEST_LANG_GUESS ("foo.en-US.sdh.forced.srt" , "en-US" , 3 , TRACK_HEARING_IMPAIRED | TRACK_FORCED );
84+ TEST_LANG_GUESS ("foo.en-simple.srt" , "en-simple" , 3 , 0 );
85+ TEST_LANG_GUESS ("foo.sgn-FSL.srt" , "sgn-FSL" , 3 , 0 );
86+ TEST_LANG_GUESS ("foo.gsw-u-sd-chzh.srt" , "gsw-u-sd-chzh" , 3 , 0 );
87+ TEST_LANG_GUESS ("foo.en-.srt" , "" , -1 , 0 );
88+ TEST_LANG_GUESS ("foo.en-US-.srt" , "" , -1 , 0 );
89+ TEST_LANG_GUESS ("foo.en-aaaaaaaaa.srt" , "" , -1 , 0 );
90+ TEST_LANG_GUESS ("foo.en-0.srt" , "" , -1 , 0 );
8991
90- TEST_LANG_GUESS ("foo[en].srt" , "en" , 3 , false);
91- TEST_LANG_GUESS ("foo[en-US].srt" , "en-US" , 3 , false);
92- TEST_LANG_GUESS ("foo[en-US][hi].srt" , "en-US" , 3 , true);
93- TEST_LANG_GUESS ("foo[en-US][sdh].srt" , "en-US" , 3 , true);
94- TEST_LANG_GUESS ("foo[].srt" , "" , -1 , false);
92+ TEST_LANG_GUESS ("foo[en].srt" , "en" , 3 , 00 );
93+ TEST_LANG_GUESS ("foo[en-US].srt" , "en-US" , 3 , 0 );
94+ TEST_LANG_GUESS ("foo[en-US][hi].srt" , "en-US" , 3 , TRACK_HEARING_IMPAIRED );
95+ TEST_LANG_GUESS ("foo[en-US][sdh].srt" , "en-US" , 3 , TRACK_HEARING_IMPAIRED );
96+ TEST_LANG_GUESS ("foo[en-US][forced].srt" , "en-US" , 3 , TRACK_FORCED );
97+ TEST_LANG_GUESS ("foo[en-US][forced][sdh].srt" , "en-US" , 3 , TRACK_HEARING_IMPAIRED | TRACK_FORCED );
98+ TEST_LANG_GUESS ("foo[en-US][sdh][forced].srt" , "en-US" , 3 , TRACK_HEARING_IMPAIRED | TRACK_FORCED );
99+ TEST_LANG_GUESS ("foo[].srt" , "" , -1 , 0 );
95100
96- TEST_LANG_GUESS ("foo(en).srt" , "en" , 3 , false);
97- TEST_LANG_GUESS ("foo(en-US).srt" , "en-US" , 3 , false);
98- TEST_LANG_GUESS ("foo(en-US)(hi).srt" , "en-US" , 3 , true);
99- TEST_LANG_GUESS ("foo(en-US)(sdh).srt" , "en-US" , 3 , true);
100- TEST_LANG_GUESS ("foo().srt" , "" , -1 , false);
101+ TEST_LANG_GUESS ("foo(en).srt" , "en" , 3 , 0 );
102+ TEST_LANG_GUESS ("foo(en-US).srt" , "en-US" , 3 , 0 );
103+ TEST_LANG_GUESS ("foo(en-US)(hi).srt" , "en-US" , 3 , TRACK_HEARING_IMPAIRED );
104+ TEST_LANG_GUESS ("foo(en-US)(sdh).srt" , "en-US" , 3 , TRACK_HEARING_IMPAIRED );
105+ TEST_LANG_GUESS ("foo(en-US)(forced).srt" , "en-US" , 3 , TRACK_FORCED );
106+ TEST_LANG_GUESS ("foo(en-US)(forced)(sdh).srt" , "en-US" , 3 , TRACK_HEARING_IMPAIRED | TRACK_FORCED );
107+ TEST_LANG_GUESS ("foo(en-US)(sdh)(forced).srt" , "en-US" , 3 , TRACK_HEARING_IMPAIRED | TRACK_FORCED );
108+ TEST_LANG_GUESS ("foo().srt" , "" , -1 , 0 );
109+
110+ TEST_LANG_GUESS ("foo.hi.forced.srt" , "" , -1 , TRACK_HEARING_IMPAIRED | TRACK_FORCED );
111+ TEST_LANG_GUESS ("foo.forced.hi.srt" , "" , -1 , TRACK_HEARING_IMPAIRED | TRACK_FORCED );
112+ TEST_LANG_GUESS ("foo.hi.srt" , "" , -1 , TRACK_HEARING_IMPAIRED );
113+ TEST_LANG_GUESS ("foo.forced.srt" , "" , -1 , TRACK_FORCED );
101114
102115 talloc_free (ta_ctx );
103116}
0 commit comments