# This testcase is part of GDB, the GNU debugger.
-# Copyright 2005, 2007, 2008 Free Software Foundation, Inc.
+# Copyright 2005-2017 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# Test GDB's "source" command - reads in a GDB script.
-if $tracelevel then {
- strace $tracelevel
-}
-
-set prms_id 0
-set bug_id 0
-set testfile "structs"
-set srcfile ${testfile}.c
-set binfile ${objdir}/${subdir}/${testfile}
+standard_testfile structs.c
gdb_start
gdb_test "source ${srcdir}/${subdir}/source-error.gdb" \
- "source-error.gdb:22: Error in sourced command file:\[\r\n\]*Cannot access memory at address 0x0.*" \
+ "source-error.gdb:21: Error in sourced command file:\[\r\n\]*Cannot access memory at address 0x0.*" \
"script contains error"
-
+
+gdb_test "source -v ${srcdir}/${subdir}/source-test.gdb" \
+ "echo test source options.*" \
+ "source -v"
+
+# There was a bug where -v got stuck in the "on" position.
+# Verify "source script", without the -v, is not verbose.
+set test "source after -v"
+gdb_test_multiple "source ${srcdir}/${subdir}/source-test.gdb" $test {
+ -re "echo test source options.*$gdb_prompt $" {
+ fail "$test"
+ }
+ -re "test source options.*$gdb_prompt $" {
+ pass "$test"
+ }
+}
+
+gdb_test "dir ${srcdir}/${subdir}" "Source directories searched: .*" \
+ "set search directories"
+gdb_test "source -s ./source-test.gdb" \
+ "test source options" \
+ "source -s"
+
+# Test -v and -s in either order.
+gdb_test "source -s -v ./source-test.gdb" \
+ "echo test source options.*" \
+ "source -s -v"
+gdb_test "source -v -s ./source-test.gdb" \
+ "echo test source options.*" \
+ "source -v -s"
+
+# Test sourcing a non-existant file, both when the source command
+# comes from the a command entered at the GDB prompt, and when
+# it comes from a script being sourced.
+gdb_test "source for-sure-nonexistant-file" \
+ "for-sure-nonexistant-file: No such file or directory\."
+
+gdb_test "source source-nofile.gdb" \
+ "warning: for-sure-nonexistant-file: No such file or directory\.\[\r\n\]*source error not fatal"
+
gdb_exit