diff --git a/pkgs/development/rocm-modules/5/clr/default.nix b/pkgs/development/rocm-modules/5/clr/default.nix index c0d4de8cbb7c..8a5d695e2b4c 100644 --- a/pkgs/development/rocm-modules/5/clr/default.nix +++ b/pkgs/development/rocm-modules/5/clr/default.nix @@ -147,10 +147,13 @@ in stdenv.mkDerivation (finalAttrs: { }; impureTests = { - clr-icd = callPackage ./test.nix { + rocm-smi = callPackage ./test-rocm-smi.nix { inherit rocm-smi; clr = finalAttrs.finalPackage; }; + opencl-example = callPackage ./test-opencl-example.nix { + clr = finalAttrs.finalPackage; + }; }; }; diff --git a/pkgs/development/rocm-modules/5/clr/test-opencl-example.nix b/pkgs/development/rocm-modules/5/clr/test-opencl-example.nix new file mode 100644 index 000000000000..d6714c6b7d63 --- /dev/null +++ b/pkgs/development/rocm-modules/5/clr/test-opencl-example.nix @@ -0,0 +1,75 @@ +{ lib +, stdenv +, makeImpureTest +, fetchFromGitHub +, clr +, cmake +, pkg-config +, glew +, freeglut +, opencl-headers +, ocl-icd +}: + +let + + examples = stdenv.mkDerivation { + pname = "amd-app-samples"; + version = "2018-06-10"; + + src = fetchFromGitHub { + owner = "OpenCL"; + repo = "AMD_APP_samples"; + rev = "54da6ca465634e78fc51fc25edf5840467ee2411"; + hash = "sha256-qARQpUiYsamHbko/I1gPZE9pUGJ+3396Vk2n7ERSftA="; + }; + + nativeBuildInputs = [ cmake pkg-config ]; + + buildInputs = [ glew freeglut opencl-headers ocl-icd ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + # Example path is bin/x86_64/Release/cl/Reduction/Reduction + cp -r bin/*/*/*/*/* $out/bin/ + + runHook postInstall + ''; + + cmakeFlags = [ "-DBUILD_CPP_CL=OFF" ]; + + meta = with lib; { + description = "Samples from the AMD APP SDK (with OpenCRun support) "; + homepage = "https://github.com/OpenCL/AMD_APP_samples"; + license = licenses.bsd2; + platforms = platforms.linux; + maintainers = lib.teams.rocm.members; + }; + }; + +in +makeImpureTest { + name = "opencl-example"; + testedPackage = "rocmPackages_5.clr"; + + sandboxPaths = [ "/sys" "/dev/dri" "/dev/kfd" ]; + + nativeBuildInputs = [ examples ]; + + OCL_ICD_VENDORS = "${clr.icd}/etc/OpenCL/vendors"; + + testScript = '' + # Examples load resources from current directory + cd ${examples}/bin + echo OCL_ICD_VENDORS=$OCL_ICD_VENDORS + pwd + + HelloWorld | grep HelloWorld + ''; + + meta = with lib; { + maintainers = teams.rocm.members; + }; +} diff --git a/pkgs/development/rocm-modules/5/clr/test.nix b/pkgs/development/rocm-modules/5/clr/test-rocm-smi.nix similarity index 86% rename from pkgs/development/rocm-modules/5/clr/test.nix rename to pkgs/development/rocm-modules/5/clr/test-rocm-smi.nix index c02bb4da8886..25c0a7e0c32c 100644 --- a/pkgs/development/rocm-modules/5/clr/test.nix +++ b/pkgs/development/rocm-modules/5/clr/test-rocm-smi.nix @@ -6,8 +6,8 @@ }: makeImpureTest { - name = "clr-icd"; - testedPackage = "rocmPackages.clr"; + name = "rocm-smi"; + testedPackage = "rocmPackages_5.clr"; nativeBuildInputs = [ clinfo rocm-smi ]; OCL_ICD_VENDORS = "${clr.icd}/etc/OpenCL/vendors";