avutil/tests/opt: test av_opt_find2()
Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
a9df9f95c4
commit
855d4b5254
@ -409,5 +409,54 @@ int main(void)
|
||||
av_opt_free(&test_ctx);
|
||||
}
|
||||
|
||||
printf("\nTesting av_opt_find2()\n");
|
||||
{
|
||||
TestContext test_ctx = { 0 };
|
||||
ChildContext child_ctx = { 0 };
|
||||
void *target;
|
||||
const AVOption *opt;
|
||||
|
||||
test_ctx.class = &test_class;
|
||||
child_ctx.class = &child_class;
|
||||
test_ctx.child = &child_ctx;
|
||||
|
||||
av_log_set_level(AV_LOG_QUIET);
|
||||
|
||||
// Should succeed. num exists and has opt_flags 1
|
||||
opt = av_opt_find2(&test_ctx, "num", NULL, 1, 0, &target);
|
||||
if (opt && target == &test_ctx)
|
||||
printf("OK '%s'\n", opt->name);
|
||||
else
|
||||
printf("Error 'num'\n");
|
||||
|
||||
// Should fail. num64 exists but has opt_flags 1, not 2
|
||||
opt = av_opt_find(&test_ctx, "num64", NULL, 2, 0);
|
||||
if (opt)
|
||||
printf("OK '%s'\n", opt->name);
|
||||
else
|
||||
printf("Error 'num64'\n");
|
||||
|
||||
// Should fail. child_num exists but in a child object we're not searching
|
||||
opt = av_opt_find(&test_ctx, "child_num", NULL, 0, 0);
|
||||
if (opt)
|
||||
printf("OK '%s'\n", opt->name);
|
||||
else
|
||||
printf("Error 'child_num'\n");
|
||||
|
||||
// Should succeed. child_num exists in a child object we're searching
|
||||
opt = av_opt_find2(&test_ctx, "child_num", NULL, 0, AV_OPT_SEARCH_CHILDREN, &target);
|
||||
if (opt && target == &child_ctx)
|
||||
printf("OK '%s'\n", opt->name);
|
||||
else
|
||||
printf("Error 'child_num'\n");
|
||||
|
||||
// Should fail. foo doesn't exist
|
||||
opt = av_opt_find(&test_ctx, "foo", NULL, 0, 0);
|
||||
if (opt)
|
||||
printf("OK '%s'\n", opt->name);
|
||||
else
|
||||
printf("Error 'foo'\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -449,3 +449,10 @@ Setting options string 'a_very_long_option_name_that_will_need_to_be_ellipsized_
|
||||
Setting 'a_very_long_option_name_that_will_need_to_be_ellipsized_around_here' to value '42'
|
||||
Option 'a_very_long_option_name_that_will_need_to_be_ellipsized_around_here' not found
|
||||
Error 'a_very_long_option_name_that_will_need_to_be_ellipsized_around_here=42'
|
||||
|
||||
Testing av_opt_find2()
|
||||
OK 'num'
|
||||
Error 'num64'
|
||||
Error 'child_num'
|
||||
OK 'child_num'
|
||||
Error 'foo'
|
||||
|
Loading…
x
Reference in New Issue
Block a user