1. 29 Jan, 2019 4 commits
  2. 13 Dec, 2018 1 commit
  3. 09 Aug, 2018 1 commit
    • Petri Latvala's avatar
      runner: New test runner · 18c1e752
      Petri Latvala authored
      This is a new test runner to replace piglit. Piglit has been very
      useful as a test runner, but certain improvements have been very
      difficult if possible at all in a generic test running framework.
      
      Important improvements over piglit:
      
      - Faster to launch. Being able to make assumptions about what we're
        executing makes it possible to save significant amounts of time. For
        example, a testlist file's line "igt@somebinary@somesubtest" already
        has all the information we need to construct the correct command
        line to execute that particular subtest, instead of listing all
        subtests of all test binaries and mapping them to command
        lines. Same goes for the regexp filters command line flags -t and
        -x; If we use -x somebinaryname, we don't need to list subtests from
        somebinaryname, we already know none of them will get executed.
      
      - Logs of incomplete tests. Piglit collects test output to memory and
        dumps them to a file when the test is complete. The new runner
        writes all output to disk immediately.
      
      - Ability to execute multiple subtests in one binary execution. This
        was possible with piglit, but its semantics made it very hard to
        implement in practice. For example, having a testlist file not only
        selected a subset of tests to run, but also mandated that they be
        executed in the same order.
      
      - Flexible timeout support. Instead of mandating a time tests cannot
        exceed, the new runner has a timeout on inactivity. Activity is
        any output on the test's stdout or stderr, or kernel activity via
        /dev/kmsg.
      
      The runner is fairly piglit compatible. The command line is very
      similar, with a few additions. IGT_TEST_ROOT environment flag is still
      supported, but can also be set via command line (in place of igt.py in
      piglit command line).
      
      The results are a set of log files, processed into a piglit-compatible
      results.json file (BZ2 compression TODO). There are some new fields in
      the json for extra information:
      
      - "igt-version" contains the IGT version line. In
        multiple-subtests-mode the version information is only printed once,
        so it needs to be duplicated to all subtest results this way.
      - "dmesg-warnings" contains the dmesg lines that triggered a
        dmesg-warn/dmesg-fail state.
      - Runtime information will be different. Piglit takes a timestamp at
        the beginning and at the end of execution for runtime. The new
        runner uses the subtest output text. The binary execution time will
        also be included; The key "igt@somebinary" will have the runtime of
        the binary "somebinary", whereas "igt@somebinary@a" etc will have
        the runtime of the subtests. Substracting the subtest runtimes from
        the binary runtime yields the total time spent doing setup in
        igt_fixture blocks.
      
      v2:
       - use clock handling from igt_core instead of copypaste
       - install results binary
       - less magic numbers
       - scanf doesn't give empty strings after all
       - use designated array initialization with _F_JOURNAL and pals
       - add more comments to dump_dmesg
       - use signal in kill_child instead of bool
       - use more 'usual' return values for execute_entry
       - use signal number instead of magic integers
       - use IGT_EXIT_INVALID instead of magic 79
       - properly remove files in clear_test_result_directory()
       - remove magic numbers
       - warn if results directory contains extra files
       - fix naming in matches_any
       - construct command line in a cleaner way in add_subtests()
       - clarify error in filtered_job_list
       - replace single string fprintfs with fputs
       - use getline() more sanely
       - refactor string constants to a shared header
       - explain non-nul-terminated string handling in resultgen
       - saner line parsing
       - rename gen_igt_name to generate_piglit_name
       - clean up parse_result_string
       - explain what we're parsing in resultgen
       - explain the runtime accumulation in add_runtime
       - refactor result overriding
       - stop passing needle sizes to find_line functions
       - refactor stdout/stderr parsing
       - fix regex whitelist compiling
       - add TODO for suppressions.txt
       - refactor dmesg parsing
       - fill_from_journal returns void
       - explain missing result fields with TODO comments
       - log_level parsing with typeof
       - pass stdout/stderr to usage() instead of a bool
       - fix absolute_path overflow
       - refactor settings serialization
       - remove maybe_strdup function
       - refactor job list serialization
       - refactor resuming, add new resume binary
       - catch mmap failure correctly
      
      v3:
       - rename runner to igt_runner, etc
       - add meson option for building the runner
       - use UPPER_CASE names for string constants
       - add TODO comments for future refactoring
       - add a midding close()
       - const correctness where applicable
       - also build with autotools
      Signed-off-by: default avatarPetri Latvala <petri.latvala@intel.com>
      Reviewed-by: default avatarArkadiusz Hiler <arkadiusz.hiler@intel.com>
      18c1e752
  4. 22 Nov, 2017 1 commit
  5. 02 Oct, 2017 1 commit
  6. 08 Sep, 2017 1 commit
  7. 25 Jan, 2016 1 commit
  8. 06 Nov, 2014 1 commit
  9. 23 Jul, 2014 1 commit
    • Thomas Wood's avatar
      build: improve version.h generation · 743dc799
      Thomas Wood authored
      Move version.h generation into lib/Makefile.sources so that it can be
      shared between the Autotools and Android build systems. Also make sure the
      "updating version.h" message is only displayed when version.h actually
      changes and remove unnecessary includes of version.h.
      
      This also includes changes from Tvrtko Ursulin to prevent a build from
      within the git repository failing when git is not available.
      Signed-off-by: default avatarThomas Wood <thomas.wood@intel.com>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      743dc799
  10. 11 Mar, 2014 1 commit
  11. 10 Dec, 2013 1 commit
    • Ben Widawsky's avatar
      intel-gpu-tools: Version information · 8c33e9ad
      Ben Widawsky authored
      Provide two arguments version, and verbose, which allow printing from an
      arbitrary igt test. It will show system information (from build time,
      not runtime), as well as the git SHA being used.
      
      This will help reduce errors when people try to reproduce problems.
      
      As an example if I want to verify someone is running the correct version
      of a test, I could ask them to do:
      bwidawsk@ironside ~/intel-gfx/intel-gpu-tools (master)$ sudo ./tests/gem_exec_nop --verbose
      gem_exec_nop-git-3c5423b9 (Linux ironside 3.12.0-1-ARCH #1 SMP PREEMPT
      Wed Nov 6 09:06:27 CET 2013 x86_64 GNU/Linux)
      Time to exec x 1:		 35.000µs (ring=render)
      Time to exec x 2:		 28.000µs (ring=render)
      Time to exec x 4:		 20.000µs (ring=render)
      Time to exec x 8:		 14.625µs (ring=render)
      Time to exec x 16:		 11.188µs (ring=render)
      Time to exec x 32:		 11.125µs (ring=render)
      Time to exec x 64:		 10.328µs (ring=render)
      Time to exec x 128:		 10.172µs (ring=render)
      Time to exec x 256:		 10.234µs (ring=render)
      Time to exec x 512:		 10.232µs (ring=render)
      Time to exec x 1024:		 10.121µs (ring=render)
      Time to exec x 2048:		 10.151µs (ring=render)
      Time to exec x 4096:		 11.474µs (ring=render)
      Time to exec x 8192:		  9.432µs (ring=render)
      Time to exec x 16384:		  6.003µs (ring=render)
      Time to exec x 32768:		  5.029µs (ring=render)
      Time to exec x 65536:		  4.206µs (ring=render)
      Time to exec x 131072:		  3.630µs (ring=render)
      Subtest render: SUCCESS
      
      --verbose is provided for completeness, but doesn't seem too useful at
      the moement.
      
      bwidawsk@ironside ~/intel-gfx/intel-gpu-tools (master)$ sudo ./tests/gem_exec_nop --version
      gem_exec_nop-git-3c5423b9 (Linux ironside 3.12.0-1-ARCH #1 SMP PREEMPT
      Wed Nov 6 09:06:27 CET 2013 x86_64 GNU/Linux)
      
      I've put version.h in the root directory so that any subdir can access
      it. I've added the tests usage since it's immediately useful, and done
      easily via Daniels igt infrastructure work.
      
      v2:
      - Always print the version number.
      - We want to print uname at runtime.
      - Also prefix the i-g-t release version.
      
      Signed-off-by: Ben Widawsky <ben@bwidawsk.net> (v1)
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      8c33e9ad
  12. 17 Aug, 2013 1 commit
  13. 12 Aug, 2013 1 commit
  14. 04 Mar, 2013 2 commits
  15. 08 Feb, 2013 1 commit
  16. 06 Feb, 2013 1 commit
  17. 25 Jul, 2012 1 commit
    • Damien Lespiau's avatar
      build: Make autoreconf honour ACLOCAL_FLAGS · 3b0f8030
      Damien Lespiau authored
      When running autoreconf, it's possible to give flags to the underlying
      aclocal by declaring a ACLOCAL_AMFLAGS variable in the top level
      Makefile.am.
      
      Putting ${ACLOCAL_FLAGS} there allows the user to set an environment
      variable up before running autogen.sh and pull in the right directories
      to look for m4 macros, say an up-to-date version of the xorg-util macros.
      Signed-off-by: default avatarDamien Lespiau <damien.lespiau@intel.com>
      3b0f8030
  18. 08 Feb, 2012 1 commit
  19. 12 Jan, 2012 1 commit
    • Gaetan Nadon's avatar
      Debugger: convert existing makefiles to Automake. · 4768adf7
      Gaetan Nadon authored
      A common xorg idiom is used. The dependencies are auto-detected.
      If they are present, the debugger is build.
      If any are missing, the debugger is silently skipped.
      If --enable-shader-debugger is specified, the configuration
      will abort if any of the dependencies is missing.
      No user actions is needed, no env variable to set (as it should be)
      
      This will fix a number of problems:
      build cannot start due Makefile missing in tarball.
      build fails as GEN4ASM variable not available in Makefile.
      distcheck is also disturbed.
      
      In the process other minor problems were fixed:
      helper target is missing dependencies on evict.h.
      too may arguments given to pre_cpp.py but they were ignored.
      fills /tmp with temporary files.
      Acked-by: default avatarBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: default avatarGaetan Nadon <memsize@videotron.ca>
      4768adf7
  20. 04 Jan, 2012 2 commits
  21. 30 Oct, 2011 1 commit
  22. 28 Jul, 2011 1 commit
    • Ben Widawsky's avatar
      intel-gpu-tools/debugging: shader debugger · 62873796
      Ben Widawsky authored
      high level summary of the files:
        * debug_rdata - get current state from debug registers. Helpful
          when developing the debugger, and could serve some purpose in the
          future.
        * eudb - the debugger itself
        * eviction_macro - generate the proper macro to flush the EU render
          cache until I get control flow working
        * pre_cpp - an evaluating c preprocesser like thing, to be used before
          cpp
        * sr - the system routine, exception handler which runs on the EU
        * test - a very basic test system routine
        * debug.h
      62873796
  23. 08 Jun, 2011 1 commit
  24. 09 Feb, 2011 1 commit
  25. 21 Jan, 2010 1 commit
  26. 15 Dec, 2009 1 commit
  27. 19 May, 2009 1 commit
  28. 27 Apr, 2009 1 commit
  29. 27 Mar, 2009 3 commits