This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch] testsuite: Fix gdb.base/completion.exp for check// subdirectories.
On Tue, 30 Jun 2009 23:21:17 +0200, Tom Tromey wrote:
> >>>>> "Jan" == Jan Kratochvil <jan.kratochvil@redhat.com> writes:
>
> Jan> currently when you run gdb.base/completion.exp by check//unix/-m64 etc. you
> Jan> get many FAILs due to initial failing:
> Jan> dir ../testsu^GiteFAIL: gdb.base/completion.exp: directory completion (timeout)
>
> Jan> as gdb/testsuite* has also the matches like `gdb/testsuite.unix.-m64'.
>
> Thanks, this is ok.
During a retest found out the original patch did cause a regression when run
in the testsuite/ directory this time. Changed it this way:
-set uniquedir ${objdir}/${subdir}/completion-uNiQuEdIr
->
+# Do not use the `completion' start here as it would conflict with the
+# testcase (complete 'file ./gdb.base/complet') expectations.
+set uniquedir ${objdir}/${subdir}/compl-uNiQuEdIr
Checked-in now with this change.
Thanks,
Jan
http://sourceware.org/ml/gdb-cvs/2009-06/msg00207.html
--- src/gdb/testsuite/ChangeLog 2009/06/30 21:23:38 1.1908
+++ src/gdb/testsuite/ChangeLog 2009/06/30 21:33:19 1.1909
@@ -1,5 +1,14 @@
2009-06-30 Jan Kratochvil <jan.kratochvil@redhat.com>
+ * gdb.base/completion.exp (directory completion): Create the directory.
+ New variables uniquedir, escapeduniquedir, uniquesu, uniquesub,
+ escapeuniquesub.
+ (directory completion 2): Expect now ${escapeuniquesub}.
+ (Glob remaining of directory test): Remove one excessive newline.
+ Expect the real output.
+
+2009-06-30 Jan Kratochvil <jan.kratochvil@redhat.com>
+
Fix `make check//%' target after `make check' has been ran.
* Makefile.in (TEST_TARGETS): Remove the %/.dir dependency. Add
a mkdir call.
--- src/gdb/testsuite/gdb.base/completion.exp 2009/03/25 10:52:22 1.37
+++ src/gdb/testsuite/gdb.base/completion.exp 2009/06/30 21:33:20 1.38
@@ -735,25 +735,33 @@
"cd to \${srcdir}"
-# GDB used to fail adding / on directories, on the first try only
-send_gdb "dir ../testsu\t"
+# GDB used to fail adding / on directories, on the first try only.
+# Do not use the `completion' start here as it would conflict with the
+# testcase (complete 'file ./gdb.base/complet') expectations.
+set uniquedir ${objdir}/${subdir}/compl-uNiQuEdIr
+set escapeduniquedir [string_to_regexp ${uniquedir}]
+set uniquesu subdi
+set uniquesub ${uniquesu}r
+set escapeuniquesub [string_to_regexp ${uniquesub}]
+file mkdir ${uniquedir}/${uniquesub}
+send_gdb "dir ${uniquedir}\t"
gdb_expect {
- -re "../testsuite/$" {
+ -re "${escapeduniquedir}/" {
pass "directory completion"
- send_gdb "gdb.bas\t"
+ send_gdb "${uniquesu}\t"
}
- -re "../testsuite $" {
+ -re "${escapeduniquedir} $" {
fail "directory completion (old gdb bug)"
- send_gdb "\b/gdb.bas\t"
+ send_gdb "\b/${uniquesu}\t"
}
default {
fail "directory completion (timeout)"
- send_gdb "\ndir ../testsuite/gdb.bas\t"
+ send_gdb "\ndir ${uniquedir}/${uniquesu}\t"
}
}
gdb_expect {
- -re "gdb.base/$" {
+ -re "${escapeuniquesub}/$" {
pass "directory completion 2"
}
timeout {
@@ -761,7 +769,8 @@
}
}
-gdb_test "\n" "" "Glob remaining of directory test"
+# Empty COMMAND sends no newline while " " sends the newline we need.
+gdb_test " " "Source directories searched: .*" "Glob remaining of directory test"
send_gdb "complete file ./gdb.base/compl\n"