#1- Check that the warning is emitted.
#2- Avoid overriding INTERNAL_GDBFLAGS, as per documentated in
    gdb/testsuite/README:
 ~~~
 The testsuite does not override a value provided by the user.
 ~~~
We don't actually need to tweak INTERNAL_GDBFLAGS, we just need to
append out -data-directory to GDBFLAGS, because each passed
-data-directory option leads to a call to the warning:
 $ ./gdb -data-directory=foo -data-directory=bar
 Warning: foo: No such file or directory.
 Warning: bar: No such file or directory.
 [...]
gdb/ChangeLog
2018-11-19  Pedro Alves  <palves@redhat.com>
	* gdb.base/warning.exp: Don't override INTERNAL_FLAGS.  Use
	gdb_spawn_with_cmdline_opts instead of gdb_start.  Check that we
	see the expected warning.
+2018-11-19  Pedro Alves  <palves@redhat.com>
+
+       * gdb.base/warning.exp: Don't override INTERNAL_FLAGS.  Use
+       gdb_spawn_with_cmdline_opts instead of gdb_start.  Check that we
+       see the expected warning.
+
 2018-11-16  Alan Hayward  <alan.hayward@arm.com>
 
        PR gdb/22736:
 
 puts $fd "anything"
 close $fd
 
-set save $INTERNAL_GDBFLAGS
-set INTERNAL_GDBFLAGS "-nw -nx -data-directory $tname"
+gdb_spawn_with_cmdline_opts \
+    "-iex \"set pagination off\" -data-directory $tname"
 
-gdb_start
+# Make sure we see the warning.
+gdb_test "" "warning: $tname is not a directory.*" \
+    "got warning"
 
 # Make sure gdb started up.
 gdb_test "echo 23\\n" "23"
-
-set INTERNAL_GDBFLAGS $save