[PATCH] D61597: [test-suite] Fix support for user mode emulation when using cmake/lit.

Phabricator via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 11 07:31:04 PDT 2019


This revision was automatically updated to reflect the committed changes.
Closed by commit rL365783: Fix support for user mode emulation when using cmake/lit. (authored by kbeyls, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D61597?vs=208884&id=209215#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D61597/new/

https://reviews.llvm.org/D61597

Files:
  test-suite/trunk/CMakeLists.txt
  test-suite/trunk/cmake/modules/TestSuite.cmake
  test-suite/trunk/lit.site.cfg.in
  test-suite/trunk/litsupport/modules/timeit.py
  test-suite/trunk/tools/CMakeLists.txt


Index: test-suite/trunk/tools/CMakeLists.txt
===================================================================
--- test-suite/trunk/tools/CMakeLists.txt
+++ test-suite/trunk/tools/CMakeLists.txt
@@ -7,7 +7,9 @@
 
 include(Host)
 
-add_executable(fpcmp fpcmp.c)
+add_executable(fpcmp-target ${CMAKE_CURRENT_SOURCE_DIR}/fpcmp.c)
+add_executable(build-fpcmp-target ALIAS fpcmp-target)
+llvm_add_host_executable(build-fpcmp fpcmp fpcmp.c)
 
 add_custom_command(
   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/HashProgramOutput.sh
Index: test-suite/trunk/cmake/modules/TestSuite.cmake
===================================================================
--- test-suite/trunk/cmake/modules/TestSuite.cmake
+++ test-suite/trunk/cmake/modules/TestSuite.cmake
@@ -99,7 +99,8 @@
     build-HashProgramOutput.sh
     build-timeit
     build-timeit-target
-    fpcmp
+    build-fpcmp
+    build-fpcmp-target
   )
 endfunction()
 
Index: test-suite/trunk/CMakeLists.txt
===================================================================
--- test-suite/trunk/CMakeLists.txt
+++ test-suite/trunk/CMakeLists.txt
@@ -77,6 +77,18 @@
 # Run Under configuration for RunSafely.sh (will be set in lit.site.cfg)
 set(TEST_SUITE_RUN_UNDER "" CACHE STRING "RunSafely.sh run-under (-u) parameter")
 
+# User mode emulation configuration (e.g. running under qemu)
+# (will be set in lit.site.cfg)
+set(TEST_SUITE_USER_MODE_EMULATION NO CACHE BOOL
+    "RUN_UNDER is used to run tests under emulation.")
+# Set value to python style True/False
+if (TEST_SUITE_USER_MODE_EMULATION)
+  set(TEST_SUITE_USER_MODE_EMULATION "True")
+else()
+  set(TEST_SUITE_USER_MODE_EMULATION "False")
+endif()
+
+
 # run type/benchmark size configuration (mostly for SPEC at the moment)
 set(TEST_SUITE_RUN_TYPE "train" CACHE STRING
     "Type of benchmark inputs (may be test,train or ref)")
@@ -220,7 +232,10 @@
 
 add_subdirectory(tools)
 # Shortcut for the path to the fpcmp executable
-set(FPCMP ${CMAKE_BINARY_DIR}/tools/fpcmp)
+set(FPCMP ${CMAKE_BINARY_DIR}/tools/fpcmp-target)
+if (TEST_SUITE_USER_MODE_EMULATION)
+  set(FPCMP ${CMAKE_BINARY_DIR}/tools/fpcmp)
+endif()
 
 option(TEST_SUITE_COLLECT_COMPILE_TIME
        "Measure compile time by wrapping compiler invocations in timeit" ON)
Index: test-suite/trunk/lit.site.cfg.in
===================================================================
--- test-suite/trunk/lit.site.cfg.in
+++ test-suite/trunk/lit.site.cfg.in
@@ -5,6 +5,7 @@
 config.remote_client = "@TEST_SUITE_REMOTE_CLIENT@"
 config.remote_host = "@TEST_SUITE_REMOTE_HOST@"
 config.run_under = "@TEST_SUITE_RUN_UNDER@"
+config.user_mode_emulation = @TEST_SUITE_USER_MODE_EMULATION@
 config.strip_tool = "@CMAKE_STRIP@"
 config.profile_generate = @TEST_SUITE_PROFILE_GENERATE@
 config.llvm_profdata = "@TEST_SUITE_LLVM_PROFDATA@"
Index: test-suite/trunk/litsupport/modules/timeit.py
===================================================================
--- test-suite/trunk/litsupport/modules/timeit.py
+++ test-suite/trunk/litsupport/modules/timeit.py
@@ -9,7 +9,14 @@
     config = context.config
     cmd = shellcommand.parse(commandline)
 
-    timeit = "%s/tools/timeit-target" % config.test_source_root
+    if config.user_mode_emulation:
+        # user_mode_emulation should be true if tests are being run via
+        # user-mode emulation (e.g. Qemu) and thus the host version of timeit
+        # should be used.
+        timeit_name = "timeit"
+    else:
+        timeit_name = "timeit-target"
+    timeit = "%s/tools/%s" % (config.test_source_root, timeit_name)
     args = ["--limit-core", "0"]
     args += ["--limit-cpu", "7200"]
     args += ["--timeout", "7200"]


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61597.209215.patch
Type: text/x-patch
Size: 3647 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190711/c441198c/attachment-0001.bin>


More information about the llvm-commits mailing list