On Mon, Jun 16, 2014 at 03:32:35PM +0300, Mika Kuoppala wrote:
> tim.g...@intel.com writes:
> 
> > From: Tim Gore <tim.g...@intel.com>
> >
> > gem_seqno_wrap was not being built on Android because it uses
> > wordexp which is not in Bionic.
> > After discussion with Mika Kuoppala (the test author) it seems
> > that wordexp was used to implement the --cmd option that was
> > really only intended for use during development of the test and
> > is no longer needed. So I have removed support for this option
> > and enabled this test for Android.
> >
> > Signed-off-by: Tim Gore <tim.g...@intel.com>
> 
> Reviewed-by: Mika Kuoppala <mika.kuopp...@intel.com>

Merged, thanks.
-Daniel
> 
> > ---
> >  tests/Android.mk       |  1 -
> >  tests/gem_seqno_wrap.c | 77 
> > ++------------------------------------------------
> >  2 files changed, 3 insertions(+), 75 deletions(-)
> >
> > diff --git a/tests/Android.mk b/tests/Android.mk
> > index 9db6625..f085d35 100644
> > --- a/tests/Android.mk
> > +++ b/tests/Android.mk
> > @@ -28,7 +28,6 @@ endef
> >  
> >  # some tests still do not build under android
> >  skip_tests_list :=
> > -skip_tests_list += gem_seqno_wrap
> >  skip_tests_list += testdisplay        # needs glib.h
> >  skip_tests_list += pm_rpm
> >  
> > diff --git a/tests/gem_seqno_wrap.c b/tests/gem_seqno_wrap.c
> > index fa38f1f..ad4f839 100644
> > --- a/tests/gem_seqno_wrap.c
> > +++ b/tests/gem_seqno_wrap.c
> > @@ -38,7 +38,6 @@
> >  #include <sys/types.h>
> >  #include <sys/wait.h>
> >  #include <limits.h>
> > -#include <wordexp.h>
> >  #include <getopt.h>
> >  #include <signal.h>
> >  #include <errno.h>
> > @@ -62,7 +61,6 @@ static struct intel_batchbuffer *batch_3d;
> >  struct option_struct {
> >     int rounds;
> >     int background;
> > -   char cmd[1024];
> >     int timeout;
> >     int dontwrap;
> >     int prewrap_space;
> > @@ -281,64 +279,6 @@ static void run_sync_test(int num_buffers, bool verify)
> >     close(fd);
> >  }
> >  
> > -static int run_cmd(char *s)
> > -{
> > -   int pid;
> > -   int r = -1;
> > -   int status = 0;
> > -   wordexp_t wexp;
> > -   int i;
> > -   r = wordexp(s, &wexp, 0);
> > -   if (r != 0) {
> > -           printf("can't parse %s\n", s);
> > -           return r;
> > -   }
> > -
> > -   for(i = 0; i < wexp.we_wordc; i++)
> > -           printf("argv[%d] = %s\n", i, wexp.we_wordv[i]);
> > -
> > -   pid = fork();
> > -
> > -   if (pid == 0) {
> > -           char path[PATH_MAX];
> > -           char full_path[PATH_MAX];
> > -
> > -           if (getcwd(path, PATH_MAX) == NULL)
> > -                   perror("getcwd");
> > -
> > -           igt_assert(snprintf(full_path, PATH_MAX, "%s/%s", path, 
> > wexp.we_wordv[0]) > 0);
> > -
> > -           r = execv(full_path, wexp.we_wordv);
> > -           if (r == -1)
> > -                   perror("execv failed");
> > -   } else {
> > -           int waitcount = options.timeout;
> > -
> > -           while(waitcount-- > 0) {
> > -                   r = waitpid(pid, &status, WNOHANG);
> > -                   if (r == pid) {
> > -                           if(WIFEXITED(status)) {
> > -                                   if (WEXITSTATUS(status))
> > -                                           fprintf(stderr,
> > -                                               "child returned with %d\n",
> > -                                                   WEXITSTATUS(status));
> > -                                   return WEXITSTATUS(status);
> > -                           }
> > -                   } else if (r != 0) {
> > -                           perror("waitpid");
> > -                           return -errno;
> > -                   }
> > -
> > -                   sleep(3);
> > -           }
> > -
> > -           kill(pid, SIGKILL);
> > -           return -ETIMEDOUT;
> > -   }
> > -
> > -   return r;
> > -}
> > -
> >  static const char *dfs_base = "/sys/kernel/debug/dri";
> >  static const char *dfs_entry = "i915_next_seqno";
> >  
> > @@ -415,7 +355,7 @@ static int write_seqno(uint32_t seqno)
> >     int fh;
> >     char buf[32];
> >     int r;
> > -   uint32_t rb;
> > +   uint32_t rb = -1;
> >  
> >     if (options.dontwrap)
> >             return 0;
> > @@ -461,10 +401,7 @@ static uint32_t calc_prewrap_val(void)
> >  
> >  static void run_test(void)
> >  {
> > -   if (strnlen(options.cmd, sizeof(options.cmd)) > 0)
> > -           igt_assert(run_cmd(options.cmd) == 0);
> > -   else
> > -           run_sync_test(options.buffers, true);
> > +   run_sync_test(options.buffers, true);
> >  }
> >  
> >  static void preset_run_once(void)
> > @@ -521,7 +458,6 @@ static void print_usage(const char *s)
> >     printf("%s: [OPTION]...\n", s);
> >     printf("    where options are:\n");
> >     printf("    -b --background       run in background inducing wraps\n");
> > -   printf("    -c --cmd=cmdstring    use cmdstring to cross wrap\n");
> >     printf("    -n --rounds=num       run num times across wrap boundary, 0 
> > == forever\n");
> >     printf("    -t --timeout=sec      set timeout to wait for testrun to 
> > sec seconds\n");
> >     printf("    -d --dontwrap         don't wrap just run the test\n");
> > @@ -536,7 +472,6 @@ static void parse_options(int argc, char **argv)
> >     int c;
> >     int option_index = 0;
> >     static struct option long_options[] = {
> > -           {"cmd", required_argument, 0, 'c'},
> >             {"rounds", required_argument, 0, 'n'},
> >             {"background", no_argument, 0, 'b'},
> >             {"timeout", required_argument, 0, 't'},
> > @@ -546,7 +481,6 @@ static void parse_options(int argc, char **argv)
> >             {"buffers", required_argument, 0, 'i'},
> >     };
> >  
> > -   strcpy(options.cmd, "");
> >     options.rounds = SLOW_QUICK(50, 2);
> >     options.background = 0;
> >     options.dontwrap = 0;
> > @@ -555,7 +489,7 @@ static void parse_options(int argc, char **argv)
> >     options.prewrap_space = 21;
> >     options.buffers = 10;
> >  
> > -   while((c = getopt_long(argc, argv, "c:n:bvt:dp:ri:",
> > +   while((c = getopt_long(argc, argv, "n:bvt:dp:ri:",
> >                            long_options, &option_index)) != -1) {
> >             switch(c) {
> >             case 'b':
> > @@ -570,11 +504,6 @@ static void parse_options(int argc, char **argv)
> >                     options.rounds = atoi(optarg);
> >                     printf("running %d rounds\n", options.rounds);
> >                     break;
> > -           case 'c':
> > -                   strncpy(options.cmd, optarg, sizeof(options.cmd) - 1);
> > -                   options.cmd[sizeof(options.cmd) - 1] = 0;
> > -                   printf("cmd set to %s\n", options.cmd);
> > -                   break;
> >             case 'i':
> >                     options.buffers = atoi(optarg);
> >                     printf("buffers %d\n", options.buffers);
> > -- 
> > 1.9.2
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to