From e759f9580ef0a76131c7540015a87968742fce9f Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Thu, 24 Nov 2011 10:31:24 +1000 Subject: Improved usage of TESTDATA with relative paths beginning with ".." Support the common construct of a top-level test directory having a test/test.pro with: TARGET = ../tst_sometest TESTDATA = ../data1.txt ../data2.txt Prior to this change, the ".." in TESTDATA would cause the data to break out of the test's installation directory. Change-Id: I22860bf3a148f278b3f4e18b476fd151f7f0f775 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/testcase.prf | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf index a6b8d82f1e..15135e1f89 100644 --- a/mkspecs/features/testcase.prf +++ b/mkspecs/features/testcase.prf @@ -104,7 +104,20 @@ contains(INSTALLS, target) { # TESTDATA consists of the files to install (source)... $$tdif = $$file - # ... and the destination preserves the relative path + # ... and the destination preserves the relative path. + # Strip any leading ../ from the testdata, so that installation does not escape + # the test's directory in the case of e.g. + # + # TARGET = ../tst_qprocess + # TESTDATA = ../thing1 ../thing2 + # + # The testdata should end up at $$[QT_INSTALL_TESTS]/tst_qprocess/thing1, + # rather than $$[QT_INSTALL_TESTS]/tst_qprocess/../thing1. + # + # Note that this does not guarantee the same relative path between test binary + # and testdata in the build and install tree, but should cover most cases. + # + file = $$replace(file, ^(\\.\\./)+, ) $$tdip = $${target.path}/$$dirname(file) INSTALLS += $$tdi -- cgit v1.2.3