summaryrefslogtreecommitdiffstats
path: root/tests/auto/qmake
diff options
context:
space:
mode:
authorRohan McGovern <rohan.mcgovern@nokia.com>2009-05-26 10:46:54 +1000
committerRohan McGovern <rohan.mcgovern@nokia.com>2009-05-26 11:18:23 +1000
commit2248d63c1a32ae84bb6d0bde9021a8074db1b4c9 (patch)
tree5351227c2f01ecf78e0be31bfaecd0d4e75c4972 /tests/auto/qmake
parenta4ca38bab521e1f0095b9c90c4623ca9d41d219b (diff)
Fixed qmake writing targets into the root of the current drive when
DESTDIR=./ and using Windows, nmake and shadow builds. qmake would canonicalize the DESTDIR of "./" to "". Then it would check if the original DESTDIR ended with "/", and if so, append it to the new DESTDIR, resulting in a DESTDIR of "/" - the root of the current drive. Don't do that. This bug doesn't occur with in-source builds because qmake detects that the source and build directories are the same directory and replaces the DESTDIR of "./" with "" before it reaches the buggy code. Autotest: included Reviewed-by: Lincoln Ramsay
Diffstat (limited to 'tests/auto/qmake')
-rw-r--r--tests/auto/qmake/tst_qmake.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/auto/qmake/tst_qmake.cpp b/tests/auto/qmake/tst_qmake.cpp
index 70f1f3c6e1..1178c81899 100644
--- a/tests/auto/qmake/tst_qmake.cpp
+++ b/tests/auto/qmake/tst_qmake.cpp
@@ -63,6 +63,7 @@ public slots:
private slots:
void simple_app();
+ void simple_app_shadowbuild();
void simple_lib();
void simple_dll();
void subdirs();
@@ -143,6 +144,21 @@ void tst_qmake::simple_app()
QVERIFY( test_compiler.removeMakefile( workDir ) );
}
+void tst_qmake::simple_app_shadowbuild()
+{
+ QString workDir = base_path + "/testdata/simple_app";
+ QString buildDir = base_path + "/testdata/simple_app_build";
+
+ QVERIFY( test_compiler.qmake( workDir, "simple_app", buildDir ));
+ QVERIFY( test_compiler.make( buildDir ));
+ QVERIFY( test_compiler.exists( buildDir, "simple_app", Exe, "1.0.0" ));
+ QVERIFY( test_compiler.makeClean( buildDir ));
+ QVERIFY( test_compiler.exists( buildDir, "simple_app", Exe, "1.0.0" )); // Should still exist after a make clean
+ QVERIFY( test_compiler.makeDistClean( buildDir ));
+ QVERIFY( !test_compiler.exists( buildDir, "simple_app", Exe, "1.0.0" )); // Should not exist after a make distclean
+ QVERIFY( test_compiler.removeMakefile( buildDir ) );
+}
+
void tst_qmake::simple_dll()
{
QString workDir = base_path + "/testdata/simple_dll";