@@ -450,7 +450,7 @@ void igt_subtest_init(int argc, char **argv)
}
/**
- * igt_simple_init:
+ * __igt_simple_init:
*
* This initializes a simple test without any support for subtests.
*
@@ -458,7 +458,7 @@ void igt_subtest_init(int argc, char **argv)
* #igt_simple_main block instead of stitching the tests's main() function together
* manually.
*/
-void igt_simple_init(void)
+void __igt_simple_init(void)
{
print_version();
@@ -166,23 +166,26 @@ bool igt_only_list_subtests(void);
*
* Init for simple tests without subtests
*/
-void igt_simple_init(void);
+void __igt_simple_init(void);
/**
* igt_simple_main:
*
* This is a magic control flow block used instead of a main() function for
- * simple tests. Open-coding the main() function is only recommended if
- * the test needs to parse additional cmdline arguments of its own.
+ * simple tests. It calls __igt_simple_init() to do basic setup
+ * and passes argc/v through to the "__real_main" function that
+ * follows the macro.
+ * Open-coding the main() function is only recommended if there is a
+ * requirement that cannot be met otherwise
*/
#define igt_simple_main \
- static void igt_tokencat(__real_main, __LINE__)(void); \
+ static void igt_tokencat(__real_main, __LINE__)(int argc, char **argv); \
int main(int argc, char **argv) { \
- igt_simple_init(); \
- igt_tokencat(__real_main, __LINE__)(); \
- exit(0); \
+ __igt_simple_init(); \
+ igt_tokencat(__real_main, __LINE__)(argc, argv); \
+ igt_exit(); \
} \
- static void igt_tokencat(__real_main, __LINE__)(void) \
+ static void igt_tokencat(__real_main, __LINE__)(int argc, char **argv) \
__attribute__((format(printf, 1, 2)))
void igt_skip(const char *f, ...) __attribute__((noreturn));
@@ -145,12 +145,10 @@ static void parse(int argc, char *argv[])
}
}
-int main(int argc, char *argv[])
+igt_simple_main
{
int i;
- igt_simple_init();
-
fd = drm_open_any_render();
devid = intel_get_drm_devid(fd);
@@ -173,6 +171,4 @@ int main(int argc, char *argv[])
free(threads);
close(fd);
-
- return 0;
}
@@ -253,12 +253,10 @@ static void run(int object_size)
close(fd);
}
-int main(int argc, char **argv)
+igt_simple_main
{
int i;
- igt_simple_init();
-
igt_skip_on_simulation();
if (argc > 1) {
@@ -270,5 +268,4 @@ int main(int argc, char **argv)
} else
run(OBJECT_SIZE);
- return 0;
}
@@ -50,7 +50,7 @@ static double elapsed(const struct timeval *start,
return (1e6*(end->tv_sec - start->tv_sec) + (end->tv_usec - start->tv_usec))/loop;
}
-int main(int argc, char **argv)
+igt_simple_main
{
struct timeval start, end;
uint8_t *buf;
@@ -59,15 +59,13 @@ int main(int argc, char **argv)
int loop, i, tiling;
int fd;
- igt_simple_init();
-
igt_skip_on_simulation();
if (argc > 1)
size = atoi(argv[1]);
if (size == 0) {
igt_warn("Invalid object size specified\n");
- return 1;
+ igt_fail(1);
}
buf = malloc(size);
@@ -329,5 +327,4 @@ int main(int argc, char **argv)
gem_close(fd, handle);
close(fd);
- return 0;
}
@@ -68,12 +68,10 @@ gpu_hang(void)
intel_batchbuffer_flush(batch);
}
-int main(int argc, char **argv)
+igt_simple_main
{
int fd;
- igt_simple_init();
-
igt_assert_f(argc == 2,
"usage: %s <disabled pipe number>\n",
argv[0]);
@@ -93,5 +91,4 @@ int main(int argc, char **argv)
close(fd);
- return 0;
}
@@ -117,7 +117,7 @@ scratch_buf_check(data_t *data, struct igt_buf *buf, int x, int y,
color, val, x, y);
}
-int main(int argc, char **argv)
+igt_simple_main
{
data_t data = {0, };
struct intel_batchbuffer *batch = NULL;
@@ -127,7 +127,6 @@ int main(int argc, char **argv)
int opt_dump_png = false;
int opt_dump_aub = igt_aub_dump_enabled();
- igt_simple_init();
while ((opt = getopt(argc, argv, "d")) != -1) {
switch (opt) {
@@ -189,5 +188,4 @@ int main(int argc, char **argv)
scratch_buf_check(&data, &dst, WIDTH - 10, HEIGHT - 10, SRC_COLOR);
}
- return 0;
}
@@ -81,7 +81,7 @@ check_bo(int fd, uint32_t handle, uint32_t val)
}
}
-int main(int argc, char **argv)
+igt_simple_main
{
drm_intel_bufmgr *bufmgr;
struct intel_batchbuffer *batch;
@@ -90,8 +90,6 @@ int main(int argc, char **argv)
uint32_t start = 0;
int i, j, fd, count;
- igt_simple_init();
-
fd = drm_open_any();
render_copy = igt_get_render_copyfunc(intel_get_drm_devid(fd));
@@ -110,7 +108,7 @@ int main(int argc, char **argv)
count = 3 * gem_aperture_size(fd) / SIZE / 2;
else if (count < 2) {
igt_warn("count must be >= 2\n");
- return 1;
+ igt_fail(1);
}
if (count > intel_get_total_ram_mb() * 9 / 10) {
@@ -154,7 +152,7 @@ int main(int argc, char **argv)
check_bo(fd, bo[i]->handle, start_val[i]);
if (igt_run_in_simulation())
- return 0;
+ return;
igt_info("Cyclic blits, backward...\n");
for (i = 0; i < count * 4; i++) {
@@ -201,5 +199,4 @@ int main(int argc, char **argv)
for (i = 0; i < count; i++)
check_bo(fd, bo[i]->handle, start_val[i]);
- return 0;
}
@@ -95,7 +95,7 @@ check_bo(struct intel_batchbuffer *batch, struct igt_buf *buf, uint32_t val)
dri_bo_unmap(linear);
}
-int main(int argc, char **argv)
+igt_simple_main
{
drm_intel_bufmgr *bufmgr;
struct intel_batchbuffer *batch;
@@ -105,8 +105,6 @@ int main(int argc, char **argv)
int i, j, fd, count;
uint32_t devid;
- igt_simple_init();
-
igt_skip_on_simulation();
fd = drm_open_any();
@@ -132,7 +130,7 @@ int main(int argc, char **argv)
count = 3 * gem_aperture_size(fd) / SIZE / 2;
else if (count < 2) {
igt_warn("count must be >= 2\n");
- return 1;
+ igt_fail(1);
}
if (count > intel_get_total_ram_mb() * 9 / 10) {
@@ -212,5 +210,4 @@ int main(int argc, char **argv)
for (i = 0; i < count; i++)
check_bo(batch, &buf[i], start_val[i]);
- return 0;
}
@@ -533,12 +533,9 @@ static void parse_options(int argc, char **argv)
}
}
-int main(int argc, char **argv)
+igt_simple_main
{
int wcount = 0;
- int r = -1;
-
- igt_simple_init();
parse_options(argc, argv);
@@ -563,8 +560,8 @@ int main(int argc, char **argv)
if (options.rounds == wcount) {
igt_debug("done %d wraps successfully\n", wcount);
- return 0;
}
-
- return r;
+ else {
+ igt_fail(-1);
+ }
}
@@ -860,13 +860,11 @@ static void check_render_copyfunc(void)
}
-int main(int argc, char **argv)
+igt_simple_main
{
int i, j;
unsigned *current_permutation, *tmp_permutation;
- igt_simple_init();
-
drm_fd = drm_open_any();
devid = intel_get_drm_devid(drm_fd);
@@ -925,5 +923,4 @@ int main(int argc, char **argv)
igt_stop_signal_helper();
- return 0;
}
@@ -457,14 +457,12 @@ check_bo(int fd, uint32_t handle, uint32_t val)
munmap(v, WIDTH*HEIGHT*4);
}
-int main(int argc, char **argv)
+igt_simple_main
{
uint32_t *handle, *tiling, *start_val;
uint32_t start = 0;
int i, fd, count;
- igt_simple_init();
-
fd = drm_open_any();
igt_require(IS_GEN3(intel_get_drm_devid(fd)));
@@ -533,5 +531,4 @@ int main(int argc, char **argv)
check_bo(fd, handle[i], start_val[i]);
igt_info("done\n");
- return 0;
}
@@ -325,14 +325,12 @@ check_bo(int fd, uint32_t handle, uint32_t val)
}
}
-int main(int argc, char **argv)
+igt_simple_main
{
uint32_t *handle, *start_val;
uint32_t start = 0;
int i, fd, count;
- igt_simple_init();
-
fd = drm_open_any();
igt_require(IS_GEN3(intel_get_drm_devid(fd)));
@@ -393,5 +391,4 @@ int main(int argc, char **argv)
for (i = 0; i < count; i++)
check_bo(fd, handle[i], start_val[i]);
- return 0;
}
@@ -345,14 +345,12 @@ check_bo(int fd, uint32_t handle, uint32_t val)
munmap(v, WIDTH*HEIGHT*4);
}
-int main(int argc, char **argv)
+igt_simple_main
{
uint32_t *handle, *tiling, *start_val;
uint32_t start = 0;
int i, fd, count;
- igt_simple_init();
-
fd = drm_open_any();
igt_require(IS_GEN3(intel_get_drm_devid(fd)));
@@ -421,5 +419,4 @@ int main(int argc, char **argv)
check_bo(fd, handle[i], start_val[i]);
igt_info("done\n");
- return 0;
}
@@ -332,14 +332,12 @@ check_bo(int fd, uint32_t handle, uint32_t val)
munmap(v, WIDTH*HEIGHT*4);
}
-int main(int argc, char **argv)
+igt_simple_main
{
uint32_t *handle, *start_val;
uint32_t start = 0;
int i, fd, count;
- igt_simple_init();
-
fd = drm_open_any();
igt_require(IS_GEN3(intel_get_drm_devid(fd)));
@@ -400,5 +398,4 @@ int main(int argc, char **argv)
for (i = 0; i < count; i++)
check_bo(fd, handle[i], start_val[i]);
- return 0;
}
@@ -332,14 +332,12 @@ check_bo(int fd, uint32_t handle, uint32_t val)
munmap(v, WIDTH*HEIGHT*4);
}
-int main(int argc, char **argv)
+igt_simple_main
{
uint32_t *handle, *start_val;
uint32_t start = 0;
int i, fd, count;
- igt_simple_init();
-
fd = drm_open_any();
igt_require(IS_GEN3(intel_get_drm_devid(fd)));
@@ -407,5 +405,4 @@ int main(int argc, char **argv)
check_bo(fd, handle[i], start_val[i]);
igt_info("done\n");
- return 0;
}
@@ -53,7 +53,7 @@ static int do_fork(void)
assert(0);
case 0:
if (simple) {
- igt_simple_init();
+ __igt_simple_init();
igt_skip_on_simulation();