From d1ad7a56e1c2421bd0a68f189bf3f3bbaa1470f4 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Fri, 12 Jun 2020 00:07:11 -0500 Subject: [PATCH] tests standalone build Change-Id: I556cbc48c169764beaf9e50684edfb0e9075074c --- test/CMakeLists.txt | 37 +++++++++++++++++++++++------- test/MatrixTranspose/Makefile | 3 ++- test/MatrixTranspose_test/Makefile | 3 ++- test/run.sh | 37 +++++++++++++++++++++++------- 4 files changed, 62 insertions(+), 18 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 1f83e60975..a0de735905 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -20,9 +20,28 @@ # THE SOFTWARE. ################################################################################ -cmake_minimum_required ( VERSION 2.8.12 ) +cmake_minimum_required ( VERSION 3.5.0 ) set ( CMAKE_VERBOSE_MAKEFILE TRUE CACHE BOOL "Verbose Output" FORCE ) +if ( NOT DEFINED ROOT_DIR ) + MESSAGE ( FATAL_ERROR "ROOT_DIR is not defined" ) +endif () +if ( NOT DEFINED INC_PATH ) + set ( INC_PATH "${ROOT_DIR}/inc" ) +endif () +if ( NOT DEFINED LIB_PATH ) + set ( LIB_PATH "${PROJECT_BINARY_DIR}" ) +endif () +if ( NOT DEFINED TEST_DIR ) + set ( TEST_DIR "${CMAKE_CURRENT_SOURCE_DIR}" ) + ## Adding default path cmake modules + list ( APPEND CMAKE_MODULE_PATH "${ROOT_DIR}/cmake_modules" ) + ## Include common cmake modules + include ( utils ) + ## Set build environment + include ( env ) +endif () + ## Path to HSA test set ( HSA_TEST_DIR "${TEST_DIR}/hsa/test" ) set ( HSA_REV "48bd999" ) @@ -31,7 +50,7 @@ set ( HSA_REV "48bd999" ) set ( RUN_SCRIPT "${TEST_DIR}/run.sh" ) ## build HIP tests -set ( TEST_ENV HIP_VDI=${HIP_VDI} ROCM_PATH=${ROCM_ROOT_DIR} HSA_PATH=${ROCM_ROOT_DIR}/hsa ROOT_PATH=${ROOT_DIR} LIB_PATH=${PROJECT_BINARY_DIR} HIPCC_VERBOSE=3 ) +set ( TEST_ENV HIP_VDI=${HIP_VDI} ROCM_PATH=${ROCM_ROOT_DIR} HSA_PATH=${ROCM_ROOT_DIR}/hsa INC_PATH=${INC_PATH} LIB_PATH=${LIB_PATH} HIPCC_VERBOSE=3 ) add_custom_target( mytest COMMAND ${TEST_ENV} make -C "${TEST_DIR}/MatrixTranspose" COMMAND sh -xc "cp ${TEST_DIR}/MatrixTranspose/MatrixTranspose ${PROJECT_BINARY_DIR}/test" @@ -51,12 +70,14 @@ add_custom_target( mytest ## Util sources file( GLOB UTIL_SRC "${HSA_TEST_DIR}/util/*.cpp" ) -## Build test library -set ( TEST_LIB "tracer_tool" ) -set ( TEST_LIB_SRC ${TEST_DIR}/tool/tracer_tool.cpp ${UTIL_SRC} ) -add_library ( ${TEST_LIB} SHARED ${TEST_LIB_SRC} ) -target_include_directories ( ${TEST_LIB} PRIVATE ${HSA_TEST_DIR} ${ROOT_DIR} ${ROOT_DIR}/inc ${HSA_RUNTIME_INC_PATH} ${HSA_RUNTIME_HSA_INC_PATH} ${HIP_INC_DIR} ${HCC_INC_DIR} ${HSA_KMT_INC_PATH} ) -target_link_libraries ( ${TEST_LIB} ${ROCTRACER_TARGET} ${HSA_RUNTIME_LIB} c stdc++ dl pthread rt ) +if ( DEFINED ROCTRACER_TARGET ) + ## Build test library + set ( TEST_LIB "tracer_tool" ) + set ( TEST_LIB_SRC ${TEST_DIR}/tool/tracer_tool.cpp ${UTIL_SRC} ) + add_library ( ${TEST_LIB} SHARED ${TEST_LIB_SRC} ) + target_include_directories ( ${TEST_LIB} PRIVATE ${HSA_TEST_DIR} ${ROOT_DIR} ${ROOT_DIR}/inc ${HSA_RUNTIME_INC_PATH} ${HSA_RUNTIME_HSA_INC_PATH} ${HIP_INC_DIR} ${HCC_INC_DIR} ${HSA_KMT_INC_PATH} ) + target_link_libraries ( ${TEST_LIB} ${ROCTRACER_TARGET} ${HSA_RUNTIME_LIB} c stdc++ dl pthread rt ) +endif () ## Build HSA test execute_process ( COMMAND sh -xc "if [ ! -e ${TEST_DIR}/hsa ] ; then git clone https://github.com/ROCmSoftwarePlatform/hsa-class.git ${TEST_DIR}/hsa; fi" ) diff --git a/test/MatrixTranspose/Makefile b/test/MatrixTranspose/Makefile index 1031158348..fa020ccf3e 100644 --- a/test/MatrixTranspose/Makefile +++ b/test/MatrixTranspose/Makefile @@ -1,4 +1,5 @@ ROOT_PATH ?= ../.. +INC_PATH ?= $(ROOT_PATH)/inc LIB_PATH ?= $(ROOT_PATH)/build ROC_LIBS = -Wl,--rpath,${LIB_PATH} $(LIB_PATH)/libroctracer64.so $(LIB_PATH)/libroctx64.so @@ -21,7 +22,7 @@ EXECUTABLE=./MatrixTranspose all: clean $(EXECUTABLE) -CXXFLAGS =-g -I$(ROOT_PATH) -I$(ROOT_PATH)/inc -DLOCAL_BUILD=1 +CXXFLAGS =-g -I$(INC_PATH) -DLOCAL_BUILD=1 CXX=$(HIPCC) $(EXECUTABLE): $(OBJECTS) diff --git a/test/MatrixTranspose_test/Makefile b/test/MatrixTranspose_test/Makefile index 007dde4802..050448d668 100644 --- a/test/MatrixTranspose_test/Makefile +++ b/test/MatrixTranspose_test/Makefile @@ -1,4 +1,5 @@ ROOT_PATH ?= ../.. +INC_PATH ?= $(ROOT_PATH)/inc LIB_PATH ?= $(ROOT_PATH)/build ROCM_PATH ?= /opt/rocm HIP_VDI ?= 0 @@ -16,7 +17,7 @@ TARGET=hcc EXECUTABLE=./MatrixTranspose OBJECTS = MatrixTranspose.o -FLAGS =-g -I$(ROOT_PATH) -I$(ROOT_PATH)/inc -I$(ROCM_PATH)/hsa/include/hsa -I$(ROCM_PATH)/hsa/include -I$(ROCM_PATH)/hip/include -I$(ROCM_PATH)/include -DLOCAL_BUILD=1 -DHIP_VDI=${HIP_VDI} -DITERATIONS=$(ITERATIONS) -DAMD_INTERNAL_BUILD=1 +FLAGS =-g -I$(INC_PATH) -I$(ROCM_PATH)/hsa/include/hsa -I$(ROCM_PATH)/hsa/include -I$(ROCM_PATH)/hip/include -I$(ROCM_PATH)/include -DLOCAL_BUILD=1 -DHIP_VDI=${HIP_VDI} -DITERATIONS=$(ITERATIONS) -DAMD_INTERNAL_BUILD=1 ifeq ($(C_TEST), 1) COMP=${CC} diff --git a/test/run.sh b/test/run.sh index 2674226886..8ada56311d 100755 --- a/test/run.sh +++ b/test/run.sh @@ -27,15 +27,31 @@ BIN_NAME=`basename $0` BIN_DIR=`dirname $0` cd $BIN_DIR +IS_CI=0 +if [ "$BIN_NAME" = "run_ci.sh" ] ; then + IS_CI=1 +fi + # enable tools load failure reporting export HSA_TOOLS_REPORT_LOAD_FAILURE=1 # paths to ROC profiler and other libraries -if [ "$BIN_NAME" = "run_ci.sh" ] ; then +export LD_LIBRARY_PATH=$PWD +if [ $IS_CI = 1 ] ; then export LD_LIBRARY_PATH=/opt/rocm/roctracer/lib -else - export LD_LIBRARY_PATH=$PWD fi +if [ -n "$ROCTRACER_LIB_PATH" ] ; then + export LD_LIBRARY_PATH=$ROCTRACER_LIB_PATH +fi +if [ -z "$ROCTRACER_TOOL_PATH" ] ; then + ROCTRACER_TOOL_PATH="./test" +fi + env +ls -lad /opt/* +ls -lad /opt/rocm/* +ls -lad /opt/rocm/roctracer/* +ls -lad /opt/rocm/roctracer/*/* +ls -lad /opt/rocm/roctracer/*/*/* # test filter input test_filter=-1 @@ -63,11 +79,16 @@ eval_test() { echo "test $test_number: $test_name \"$label\"" echo "CMD: \"$cmdline\"" test_runnum=$((test_runnum + 1)) - eval "$cmdline" | tee $test_trace + eval "$cmdline" >$test_trace 2>&1 is_failed=$? - if [ $is_failed = 0 ] ; then - python ./test/check_trace.py -in $test_name - is_failed=$? + cat $test_trace + if [ $IS_CI = 1 ] ; then + is_failed=0; + else + if [ $is_failed = 0 ] ; then + python ./test/check_trace.py -in $test_name + is_failed=$? + fi fi if [ $is_failed = 0 ] ; then echo "$test_name: PASSED" @@ -90,7 +111,7 @@ eval_test "standalone HIP MGPU test" "LD_PRELOAD=libkfdwrapper64.so ./test/Matri # Tool test # rocTracer/tool is loaded by HSA runtime -export HSA_TOOLS_LIB="test/libtracer_tool.so" +export HSA_TOOLS_LIB="$ROCTRACER_TOOL_PATH/libtracer_tool.so" # KFD test export ROCTRACER_DOMAIN="kfd"