mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2025-12-25 02:30:11 +01:00
test: improve selective execution of Cairo tests based on FORMAT option
This patch improves the patch "test: Selective execution of Cairo tests based on FORMAT option" by extending the usage of FORMAT option even in the case of user not providing TARGETS= option For ex: (1). CAIRO_TESTS="zero-alpha" make test FORMAT=rgba This command runs the zero-alpha test for all the backends with argb32 content format and so on. (2). CAIRO_TESTS="zero-alpha" make test FORMAT=rgba,rgb This command runs the zero-alpha test for all the backends with argb32 and rgb24 content formats. Signed-off-by: Ravi Nanjundappa <nravi.n@samsung.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
f8e0ecb5af
commit
c61aeddc44
1 changed files with 55 additions and 13 deletions
|
|
@ -683,20 +683,62 @@ cairo_boilerplate_get_targets (int *pnum_targets,
|
|||
tname = end;
|
||||
}
|
||||
} else {
|
||||
/* check all compiled in targets */
|
||||
num_targets = 0;
|
||||
for (list = cairo_boilerplate_targets; list != NULL; list = list->next)
|
||||
num_targets++;
|
||||
int found = 0;
|
||||
int not_found_targets = 0;
|
||||
num_targets = 0;
|
||||
targets_to_test = xmalloc (sizeof(cairo_boilerplate_target_t*) * num_targets);
|
||||
for (list = cairo_boilerplate_targets; list != NULL; list = list->next)
|
||||
{
|
||||
const cairo_boilerplate_target_t *target = list->target;
|
||||
const char *tcontent_name;
|
||||
const char *tcontent_end;
|
||||
if ((tcontent_name = getenv ("CAIRO_TEST_TARGET_FORMAT")) != NULL && *tcontent_name) {
|
||||
while(tcontent_name) {
|
||||
tcontent_end = strpbrk (tcontent_name, " \t\r\n;:,");
|
||||
if (tcontent_end == tcontent_name) {
|
||||
tcontent_name = tcontent_end + 1;
|
||||
continue;
|
||||
}
|
||||
if (_cairo_boilerplate_target_format_matches_name (target,
|
||||
tcontent_name, tcontent_end)) {
|
||||
/* realloc isn't exactly the best thing here, but meh. */
|
||||
targets_to_test = xrealloc (targets_to_test,
|
||||
sizeof(cairo_boilerplate_target_t *) * (num_targets+1));
|
||||
targets_to_test[num_targets++] = target;
|
||||
found =1;
|
||||
}
|
||||
else
|
||||
{
|
||||
not_found_targets++;
|
||||
}
|
||||
|
||||
if (tcontent_end)
|
||||
tcontent_end++;
|
||||
|
||||
tcontent_name = tcontent_end;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
num_targets++;
|
||||
}
|
||||
}
|
||||
if (!found)
|
||||
{
|
||||
/* check all compiled in targets */
|
||||
num_targets = num_targets + not_found_targets;
|
||||
targets_to_test = xrealloc (targets_to_test,
|
||||
sizeof(cairo_boilerplate_target_t*) * num_targets);
|
||||
num_targets = 0;
|
||||
for (list = cairo_boilerplate_targets;
|
||||
list != NULL;
|
||||
list = list->next)
|
||||
{
|
||||
const cairo_boilerplate_target_t *target = list->target;
|
||||
targets_to_test[num_targets++] = target;
|
||||
}
|
||||
}
|
||||
|
||||
targets_to_test = xmalloc (sizeof(cairo_boilerplate_target_t*) * num_targets);
|
||||
num_targets = 0;
|
||||
for (list = cairo_boilerplate_targets;
|
||||
list != NULL;
|
||||
list = list->next)
|
||||
{
|
||||
const cairo_boilerplate_target_t *target = list->target;
|
||||
targets_to_test[num_targets++] = target;
|
||||
}
|
||||
}
|
||||
|
||||
/* exclude targets as specified by the user */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue