2002-08-01  Andrew Cagney  <cagney@redhat.com>

	* builtins.exp, callch.exp, chillvars.exp: Make files obsolete.
	* enum.exp, gch1041.exp, gch1272.exp: Make files obsolete.
	* gch1280.exp, gch922.exp, gch981.exp: Make files obsolete.
	* misc.exp, powerset.exp, pr-4975.exp: Make files obsolete.
	* pr-5016.exp, pr-5020.exp, pr-5022.exp: Make files obsolete.
	* pr-5646.exp, pr-5984.exp, pr-6292.exp: Make files obsolete.
	* pr-6632.exp, pr-8134.exp, pr-8136.exp: Make files obsolete.
	* pr-8405.exp, pr-8742.exp, pr-8894.exp: Make files obsolete.
	* pr-9095.exp, pr-9946.exp, result.exp: Make files obsolete.
	* string.exp, tests1.exp, tests2.exp: Make files obsolete.
	* tuples.exp, xstruct.exp: Make files obsolete.
	
2001-03-06  Kevin Buettner  <kevinb@redhat.com>

	* builtins.exp, callch.exp, chexp.exp, chillvars.exp,
	enum.exp, gch1041.exp, gch1272.exp, gch1280.exp, gch922.exp,
	gch981.exp, misc.exp, powerset.exp, pr-4975.exp, pr-5016.exp,
	pr-5020.exp, pr-5022.exp, pr-5646.exp, pr-5984.exp,
	pr-6292.exp, pr-6632.exp, pr-8134.exp, pr-8136.exp,
	pr-8405.exp, pr-8742.exp, pr-8894.exp, pr-9095.exp,
	pr-9946.exp, result.exp, string.exp, tests1.ch, tests1.exp,
	tests2.ch, tests2.exp, tuples.exp, xstruct.exp: Update/correct
	copyright notices.

1999-06-25  Stan Shebs  <shebs@andros.cygnus.com>

	From Jimmy Guo  <guo@cup.hp.com>:
	* xstruct-grt.ch, xstruct.ch, xstruct.exp: Rename to mollify
	doschk.

Thu May 21 02:45:18 1998  Felix Lee  <flee@zog.cygnus.com>

	* chexp.exp: fix tests that assume >16-bit ints.

Wed Sep 10 15:01:55 1997  Bob Manson  <manson@charmed.cygnus.com>

	* *.exp: The end-all be-all of quoting fixes. Ha.

Thu Aug 21 10:31:23 1997  Bob Manson  <manson@charmed.cygnus.com>

	* enum.exp: More quoting fixes.
	* pr-9946.exp: Ditto.
	* gch1280.exp: Ditto.
	* gch1272.exp: Ditto.

Tue Aug 12 21:48:08 1997  Bob Manson  <manson@charmed.cygnus.com>

	* tests2.exp: Fix quoting.
	* tests1.exp: Ditto.
	* pr-9946.exp: Ditto.
	* enum.exp: Ditto.
	* builtins.exp: Ditto.
	* powerset.exp: Ditto.
	* misc.exp: Ditto.
	* gch981.exp: Ditto.
	* gch922.exp: Ditto.
	* gch1280.exp: Ditto.
	* gch1272.exp: Ditto.
	* gch1041.exp: Ditto.

Sat Nov 23 14:00:59 1996  Fred Fish  <fnf@cygnus.com>

	* misc.exp: Change x86 linux setup_xfails to use new
 	i*86-pc-linux*-gnu quads.
	* tuples.exp: Ditto.
	* tests2.exp: Ditto.
	* pr-5016.exp: Ditto.

	* tuples.exp: Add i*86-pc-linux-gnu setup_fail to existing
	xfails for 'set var vs1 := [ "bar", 42, m_ps[ a ] ]',
	'set var $i := m_s1["foo", 44, m_ps[a ]]', and
	'set var vs2 := [ 10+3, m_s1[ "foo" , 42, m_ps[ b ]]]'.
	
Mon Nov 11 10:27:32 1996  Fred Fish  <fnf@cygnus.com>

	* callch.exp: Add mips*-sgi-irix* xfail for
	"call king(a, otto[[10, 15], [20, 25]])".
	* pr-8742.exp: Add mips*-sgi-irix* xfails for
	"pass int powerset tuple"
	"pass set powerset tuple"
	"pass modeless int powerset tuple" and
	"pass modeless set powerset tuple".
	* tuples.exp: Add sparc-*-solaris* and sparc-*-sunos*
	xfails for several "set var" commands that are failing.
	Convert most of the set commands into gdb_test_exact
	commands.

Fri Oct 11 16:48:56 1996  Fred Fish  <fnf@cygnus.com>

	* expstruct.exp (objfile2): Set and use, like other chill tests.
	* pr-4975.exp: Ditto.
	* pr-5646.exp: Ditto.
	* pr-8134.exp: Ditto.

Thu Sep  5 01:54:42 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>

	* gch1280.exp: Enhance test case.

Wed Sep  4 07:30:44 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>

	* gch1272.{ch,exp}, gch1280.{ch,exp}, pr-9946.{ch,exp}: 
	New test cases.

Sun Aug 18 13:29:48 1996  Fred Fish  <fnf@cygnus.com>

	* tests2.exp: Remove mips-sgi-irix* setup_xfail for
	"real write 4" and "real write 8".

Mon Jun 10 14:04:05 1996  Fred Fish  <fnf@cygnus.com>

	* tests1.exp (test_modes): Remove *-*-* setup_sfail for 
	"print unnumbered set range mode" and
	"print numbered set range mode".

Wed Apr 17 01:23:06 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>

	* tests1.{ch,exp}: Tets case modified and enhanced.

Tue Apr  9 01:18:04 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>

	* gch981.{ch,exp}, gch1041.{ch,exp}: New test cases.

Wed Mar  6 00:29:35 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>

	* powerset.exp: Add test.

Tue Mar  5 23:41:39 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>

	* gch922.{ch,exp}, powerset.{ch,exp}: New test cases.

	* builtins.exp, chillvars.exp, misc.exp, tests1.exp: Updated
	due to new format of nonprintable characters (control sequence
	instead of C'xx').
	
Tue Mar  5 00:09:17 1996  Per Bothner  <bothner@kalessin.cygnus.com>

	* string.ch, string.exp:  Add tests (from Cygnus PR chill/9078).

	* pr-9095.ch, pr-9095.exp:  New test case.

Fri Feb  9 08:22:16 1996  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (clean): Add missing '{'.

Tue Feb  6 21:52:26 1996  Per Bothner  <bothner@kalessin.cygnus.com>

	* pr-8894.exp, pr-8894.ch, pr-8894-grt.ch:  New test case.

Mon Jan 29 00:05:01 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>

	* builtins.ch, builtins.exp: Enhance test case.

	* extstruct.ch, extstruct-grt.ch, extstruct.exp: New test case.

Tue Jan 23 16:57:13 1996  Per Bothner  <bothner@kalessin.cygnus.com>

	* enum.ch, enum.exp:  New test case (covers PRs 8869 and 8870).

Thu Jan 11 17:34:01 1996  Per Bothner  <bothner@kalessin.cygnus.com>

	* Makefile.in (PROGS):  Removed.
	(clean mostlyclean):  Remove *.exe rather than ${PROGS}.

	* pr-8742.ch, pr-8742.exp:  New test case.

Tue Jan  9 04:47:27 1996  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>

	* misc.ch, misc.exp: Enhance test case.

Sat Dec 30 15:31:59 1995  Fred Fish  <fnf@cygnus.com>

	* tests2.exp: Setup_xfail "i*86-*-linux" and 
	"mips-sgi-irix*" for "real write 4" and "real write 8".
	Conditionalize both tests for system specific value
	of "infinity" string.

Fri Dec 29 10:46:09 1995  Fred Fish  <fnf@cygnus.com>

	* builtins.exp (test_size):  Alpha seems to have long builtins.
	* tests1.exp: Setup xfail "*-*-*" for "ptype r2".
	* tests2.exp: Add check to skip chill tests.
	
Mon Dec 11 16:53:40 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* tuples.ch, tuples.exp:  Exhance test cases (from PR 8643).

Mon Dec 11 06:57:07 1995  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>

	* builtins.exp, pr-5016.{ch,exp}, result.{ch,exp},
	tests1.{ch,exp}: Enhance test cases.

Thu Dec  7 05:16:34 1995  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>

	* builtins.ch, builtins.exp, Makefile.in: New test case.

Tue Dec  5 01:51:45 1995  Wilfried Moser (Alcatel)  <moser@rtl.cygnus.com>

	* tests2.exp: Add compiling of the test case.

Fri Dec  1 00:08:37 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* pr-8405.ch, pr-8405.exp, Makefile.in:  New test case.

	* tests1.exp, tests2.exp (test_print_reject):  Remove;  causes
	conflicts with later tests using test_print_reject in ../lib/gdb.exp.
	(passcount):  Remove.
	* tests2.exp (test_print_accept):  Removed.
	(test_write):  Re-write to use gdb_test rather than test_print_accept.
	* tests1.exp (test_print_accept_exact):  Removed.
	(tests_locations):  Rewrite to use gdb_test and not above proc.
	
	* tests1.ch, tests1.exp, tests2.ch, tests2.exp, Makefile.in:
	New (extensive) test cases.
	* chexp.exp:  Fix relations to return TRUE or FALSE.

Wed Nov 29 19:28:13 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* Makefile.in:  Add .exp.check rule.
	* callch.ch:  Add missing "%." to format strings.
	* callch.exp:  Fix argument to gdb_load.
	* chexp.exp:  Add specific error messages to test_print_reject calls.
	* misc.exp:  Add a test for PR 8496.
	* pr-6632.exp, pr-8136.exp:  Link executables from two .o files.

Sat Nov 25 20:49:27 1995  Fred Fish  <fnf@phydeaux.cygnus.com>

	* pr-5016.exp: xfail "whatis i" for alpha-osf-dec-osf2*, same as linux.

Sun Oct 29 17:58:01 1995  Fred Fish  <fnf@cygnus.com>

	* pr-5016.exp: xfail "whatis i" for sparc-sun-sunos4*, same as linux.

Wed Oct  4 18:20:53 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* pr-8136.{ch,exp}, pr-8134.exp, func1.ch, Makefile.in: New test cases.

Wed Sep 27 11:51:50 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* tuples.ch. tuples.exp:  Add new test for setting a variant record
	using a tuple, and access the fields.

Thu Aug  3 10:45:37 1995  Fred Fish  <fnf@cygnus.com>

	* Update all FSF addresses except those in COPYING* files.

Thu Jul 27 20:36:30 1995  Fred Fish  (fnf@cygnus.com)

	* pr-5016.exp: xfail "i*86-*-linux*" for "whatis int-range"
	test.  Thinks it is "_cint" rather than "m_index".
	* misc.exp: xfail "i*86-*-linux*" for "info line" test.
	Line number is off by one.

Wed Jun 14 13:07:45 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* chillvars.exp, string.exp:  New tests for LOWER/UPPER/LENGTH.

Wed Jun  7 17:52:38 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* chillvars.ch (xptr):  Declare new variable.
	* chillvars.exp (test_ptr):  New function to test EXPR->MODENAME.

Tue Mar 28 17:13:13 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* pr-6632.ch, pr-6632-grt.ch, pr-6632.exp, Makefile.in:  New test case.

Tue Mar 21 12:10:06 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* tuples.exp (do_tests): Make names of "print v_ps" test unique.

Wed Mar  8 13:26:36 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* *.exp: Skip all tests silently if skip_chill_tests returns true.

	* misc.exp: Remove reference to non-existent variable passcount.

Tue Mar  7 19:30:05 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* string.ch, string.exp, Makefile.in:  New test case.

Mon Mar  6 14:11:01 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* tuples.ch (setnmode);  New module.
	* tuples.exp:  Add some extra tests.

Sat Mar  4 15:16:17 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* callch.ch, callch.exp, Makefile.in:  New test case.

Thu Mar  2 06:17:41 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* misc.exp: If executable does not exist, issue warning and skip
	remaining tests, like other chill tests.

Wed Mar  1 20:28:42 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* misc.ch, misc.exp, Makefile.in:  New test case.

Mon Feb 20 16:19:58 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* chillvars.ch:  Add missing INIT's.
	* chillvars.exp:  Allow builtin types as either case. E.g. (BOOL|bool).
	* pr-5016.exp:  Likewise.

Sun Feb 12 11:26:08 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* pr-6292.ch, pr-6292.exp, Makefile.in:  New test case.

Wed Feb  1 13:09:48 1995  Per Bothner  <bothner@kalessin.cygnus.com>

	* tuples.ch, tuples.exp, Makefile.in:  New test case.

Mon Nov 28 18:39:08 1994  Per Bothner  <bothner@kalessin.cygnus.com>

	* pr-5984.ch, pr-5984.exp, Makefile.in:  New test case.

Fri Sep 16 16:55:03 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* pr-5646.ch, pr-5646-grt.ch, pr-5646.exp, Makefile.in: New testcase.

Tue Sep  6 13:21:27 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* pr-5016.ch, pr-5016.exp, Makefile.in:  New testcase.
	* Makefile.in (.exe.check):  New rule, to run just one test.

Tue Jun 14 16:20:18 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* result.ch, result.exp, Makefile.in:  New test case.
	* pr-4975.ch, pr-4975-grt.ch, pr-4975.exp, Makefile.in:  Ditto.

Thu Jun  9 15:20:43 1994  Per Bothner  (bothner@kalessin.cygnus.com)

	* pr-5022.ch, pr-5022.exp:  New testcase.
	* chillvars.exp:  Remove spurious newline.

	* Makefile.in:  Bunch of fixes so it actually works in this
	directory.  (E.g. add extra ../ where needed.)
	Also, add .exe to executables, so we can use suffix rules.
	* chexp.exp (test_print_reject):  Update syntax error message.
	* chillvars.ch (module PR_5020):  Moved from here ...
	* pr-5022.ch: ... to this new file.
	* chillvars.exp, pr-5020.exp (binfile):  Add .exe extension.
	* chillvars.exp, pr-5020.exp: Don't check all_flag.
	* pr-5020.exp:  Add more tests; fix "print y pretty" output.
