From 22a69b04270156e213ef828abbb98ba82d80f5be Mon Sep 17 00:00:00 2001
From: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
Date: Tue, 21 Jan 2020 11:42:18 -0800
Subject: [PATCH] tests: Preliminary patchelf smoke tests (#14551)

* Initial patchelf smoke tests
---
 .../builtin/packages/patchelf/package.py      |  26 ++++++++++++++++++
 .../builtin/packages/patchelf/test/hello      | Bin 0 -> 8272 bytes
 2 files changed, 26 insertions(+)
 create mode 100755 var/spack/repos/builtin/packages/patchelf/test/hello

diff --git a/var/spack/repos/builtin/packages/patchelf/package.py b/var/spack/repos/builtin/packages/patchelf/package.py
index d17bb3bea1..8ddb7693e1 100644
--- a/var/spack/repos/builtin/packages/patchelf/package.py
+++ b/var/spack/repos/builtin/packages/patchelf/package.py
@@ -5,6 +5,12 @@
 
 from spack import *
 
+import os
+import shutil
+import tempfile
+
+import llnl.util.tty as tty
+
 
 class Patchelf(AutotoolsPackage):
     """PatchELF is a small utility to modify the dynamic linker and RPATH of
@@ -18,3 +24,23 @@ class Patchelf(AutotoolsPackage):
     version('0.10', sha256='b2deabce05c34ce98558c0efb965f209de592197b2c88e930298d740ead09019')
     version('0.9',  sha256='f2aa40a6148cb3b0ca807a1bf836b081793e55ec9e5540a5356d800132be7e0a')
     version('0.8',  sha256='14af06a2da688d577d64ff8dac065bb8903bbffbe01d30c62df7af9bf4ce72fe')
+
+    def test(self):
+        patchelf = which('patchelf')
+        assert patchelf is not None
+
+        tty.msg('test: Ensuring use of the installed executable')
+        patchelf_dir = os.path.dirname(patchelf.path)
+        assert patchelf_dir == self.prefix.bin
+
+        tty.msg('test: Checking version')
+        output = patchelf('--version', output=str.split, error=str.split)
+        assert output.strip() == 'patchelf {0}'.format(self.spec.version)
+
+        tty.msg('test: Ensuring the rpath is changed')
+        currdir = os.getcwd()
+        hello_fn = os.path.join(currdir, 'data', 'hello')
+        patchelf('--set-rpath', currdir, hello_fn)
+        output = patchelf('--print-rpath', hello_fn,
+                          output=str.split, error=str.split)
+        assert output.strip() == currdir
diff --git a/var/spack/repos/builtin/packages/patchelf/test/hello b/var/spack/repos/builtin/packages/patchelf/test/hello
new file mode 100755
index 0000000000000000000000000000000000000000..8767836f8e8a3268b03cf29c771d8c019b8353b3
GIT binary patch
literal 8272
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
bx^(1_Dpp1nz>|fq{Wk94mRlKdk30Amcp2U=

literal 0
HcmV?d00001

-- 
GitLab