Commit Graph

1335 Commits

Author SHA1 Message Date
Dag-Erling Smørgrav
f7754b09e2 Valid error codes for err() and errx() are 1..255.
The correct format specifier for ssize_t is %zd.
2007-04-19 07:59:30 +00:00
Pawel Jakub Dawidek
ed3d9b6e75 Add more tests to verify last sendfile(2) breakage: test sending more
than a page size and nbytes=0.
2007-04-19 06:01:08 +00:00
Michael Bushkov
a3859aa386 Committing regression tests for all implemented nsswitch databases.
Detailed description and instructions are in the README file.
This work had been basically done during GSoC 2006.

Approved by:	brooks (mentor)
2007-04-15 11:02:31 +00:00
Bruce M Simpson
201096bc46 Nuke ipblock. A more complete multicast regression test suite is on the way. 2007-04-12 11:46:30 +00:00
Bruce M Simpson
e52a7d1f39 Fix a bug whereby group addresses were incorrectly computed in the test.
[Since the change to strict refcounting for in_multi objects, this test
 began to fail; formerly the refcount was a count of the number of requests
 for a given address, NOT a count of pointers to the object.]
2007-04-09 19:44:08 +00:00
Sam Leffler
9ab53fb1e5 correct copyright attribution; there was no copyright in the patches
from Andrea so I assigned him ownership; this corrects that

Submitted by:	Andrea Bittau <a.bittau@cs.ucl.ac.uk>
2007-04-09 15:43:43 +00:00
Sam Leffler
619f257be1 Due to the recent "aircrack-ptw" WEP cracking discovery, I thought
that it might be worth fixing a couple of bugs in wesside and making
it use the new cracking technique.  I think this enhancement makes
the tool quite usable.  It is possible to recover keys in only a
couple of minutes.

* Fix ACKs.  Firmware will ACK data [just set the MAC addr correctly].
* Fix RX routines.  Process all packets read().
* Use aircrack-ptw [built-in] rather than external aircrack.
* Log data in pcap format so that it may be used by others [e.g. aircrack-ng].

Submitted by:	Andrea Bittau <a.bittau@cs.ucl.ac.uk>
2007-04-08 21:18:15 +00:00
Bruce M Simpson
2509455360 Add a small test program for the additional socket options which
RFC 3678 (Source-specific Multicast API) brings to FreeBSD.
2007-04-06 23:39:17 +00:00
Pawel Jakub Dawidek
ceef0c312c Connect ZFS to the build. 2007-04-06 02:13:30 +00:00
John Baldwin
1ce2bc9187 Fix a fd leak in socketpair():
- Close the new file objects created during socketpair() if the copyout of
  the new file descriptors fails.
- Add a test to the socketpair regression test for this edge case.
2007-04-02 19:15:47 +00:00
John Baldwin
c16551befc Add another fd leak test for accept() I used to test the fix in 1.234 of
sys/kern/uipc_syscall.c.
2007-04-02 16:02:50 +00:00
Yaroslav Tykhiy
78e7d37750 Logically separate the complex hanoi' and math' tests from basic tests. 2007-04-02 08:20:43 +00:00
Yaroslav Tykhiy
e9a0eed451 Don't forget to close the range if we branched over its end
and had no chance to match it by the 2nd address precisely.
Otherwise the unclosed range would bogusly extend to the end
of stream.

Add a basic regression test for the bug fixed.  (This change
also fixes the more complex case 5.3 from `multitest.t'.)

Compared with:	SUN and GNU seds
Tested by:	regression tests
MFC after:	1 week
2007-04-02 08:14:46 +00:00
Yaroslav Tykhiy
d7cfea0e1a Today SUN and GNU seds fully agree on test 5.3 and behave
in a more reasonable way than BSD sed does: they properly
close the range even if we branched over its end.  No doubt,
the range `1,5' should not match lines from 9 through 14.
2007-04-02 07:50:10 +00:00
Yaroslav Tykhiy
6b8ef68111 This trivial change should fix at least 3 similar bugs. All of
them are related to the `c' function's need to know if we are at
the actual end of the address range.  (It must print the text not
earlier than the whole pattern space was deleted.)  It appears the
only sed function with this requirement.

There is `lastaddr' set by applies(), which is to notify the `c'
function, but it can't always help because it's false when we are
hitting the end of file early.  There is also a bug in applies()
due to which `lastaddr' isn't set to true on degenerate ranges such
as `$,$' or `N,$' if N appears the last line number.

Handling early EOF condition in applies() could look more logical,
but it would effectively revert sed to the unreasonable behaviour
rev. 1.26 of main.c fought against, as it would require lastline()
be called for each line within each address range.  So it's better
to call lastline() only if needed by the `c' function.

Together with this change to sed go regression tests for the bugs
fixed (c1-c3).  A basic test of `c' (c0) is also added as it helped
me to spot my own error.

Discussed with:		dds
Tested by:		the regression tests
MFC after:		1 week
2007-04-01 13:25:03 +00:00
George V. Neville-Neil
43888ab17c Adding tests for Camellia which will be added to the tree soon.
Added tests for aes-ctr which were not present before.
2007-03-26 07:40:51 +00:00
George V. Neville-Neil
5a146d5125 Update the regression test so that there are actually two independent
networks involved, as opposed to two hosts on one network.

MFC after:	1 week
2007-03-24 13:47:16 +00:00
George V. Neville-Neil
a564577c94 Add a test for IPv6 and IPsec which is similar to the one for IPv4.
Add comments to the test for IPv4 with IPsec.
MFC after:	1 week
2007-03-21 09:39:51 +00:00
Sam Leffler
6810ad6f2a Overhaul driver/subsystem api's:
o make all crypto drivers have a device_t; pseudo drivers like the s/w
  crypto driver synthesize one
o change the api between the crypto subsystem and drivers to use kobj;
  cryptodev_if.m defines this api
o use the fact that all crypto drivers now have a device_t to add support
  for specifying which of several potential devices to use when doing
  crypto operations
o add new ioctls that allow user apps to select a specific crypto device
  to use (previous ioctls maintained for compatibility)
o overhaul crypto subsystem code to eliminate lots of cruft and hide
  implementation details from drivers
o bring in numerous fixes from Michale Richardson/hifn; mostly for
  795x parts
o add an optional mechanism for mmap'ing the hifn 795x public key h/w
  to user space for use by openssl (not enabled by default)
o update crypto test tools to use new ioctl's and add cmd line options
  to specify a device to use for tests

These changes will also enable much future work on improving the core
crypto subsystem; including proper load balancing and interposing code
between the core and drivers to dispatch small operations to the s/w
driver as appropriate.

These changes were instigated by the work of Michael Richardson.

Reviewed by:	pjd
Approved by:	re
2007-03-21 03:42:51 +00:00
Diomidis Spinellis
6dabf85649 Rename sed.test to multitest.t to comply with the naming scheme of
the regression suite.
2007-03-14 18:58:59 +00:00
Diomidis Spinellis
0a6ffa2714 Reinstate error-testing regression tests. 2007-03-14 13:38:23 +00:00
Diomidis Spinellis
ab6386e42d Integrate the tests I wrote in 1992 with our current regression
testing framework and protocol.
2007-03-14 13:05:45 +00:00
Diomidis Spinellis
83f7d3636c Reference results for sed.test (to be renamed into multitest.t).
I have verified these with GNU sed 4.1.5 (and in some cases with Solaris
sed) and they are identical, with the following exceptions:
5.3: The result is unspecified and BSD sed behaves differently.
6.3: GNU sed gets it wrong
7.1: GNU sed gets it wrong
7.8: BSD sed gets it wrong
2007-03-14 12:46:22 +00:00
Diomidis Spinellis
ac451395ea - Uncomment tests that were commented out
- Update platform-conditional tests to reflect current reality
- Fix conditional for test 7.8: it is the fault of BSD sed
2007-03-14 11:03:00 +00:00
Diomidis Spinellis
4c1ccdfd94 - It looks like BSD and GNU sed can nowadays pass two more tests.
- Test 7.8 fails for GNU sed not BSD.
2007-03-14 10:10:10 +00:00
Diomidis Spinellis
0bc4fe6eaa Use another non-printing test; address 0 now has a special meaning in GNU sed. 2007-03-14 09:47:00 +00:00
Diomidis Spinellis
259dde6e74 Document a procedure for testing individual binaries under development. 2007-03-14 09:33:13 +00:00
Diomidis Spinellis
7fdac324d9 Update tests to reflect the state of the art of sed in HEAD and
GNU sed 4.1.5.
Almost all of the tests that were skipped for BSD or GNU sed
now appear to work.
2007-03-14 09:05:41 +00:00
Diomidis Spinellis
412e5edfa8 Add sed math regression test. 2007-03-14 07:55:05 +00:00
Diomidis Spinellis
32ad3fd6da Add Towers of Hanoi regression test. 2007-03-14 07:52:38 +00:00
Diomidis Spinellis
c29e1340e9 Add missing newline to correct failure of the regression test.
According to IEEE Std 1003.1, 2004 "Whenever the pattern space is
written to standard output or a named file, sed shall immediately
follow it with a <newline>."

An attempt at the same correction might have been made with r1.3,
which is however identical with r1.2.
2007-03-14 07:01:49 +00:00
Bruce M Simpson
f6c0136c7f Add raw IP support (protocol 114) to ipbroadcast regression test. 2007-03-13 23:36:48 +00:00
Rong-En Fan
70d21ee72b Add ncursesw, libelf, and libalias profiling libraries
Approved by:	delphij (mentor)
2007-03-11 13:37:09 +00:00
Bruce M Simpson
48451912c9 Add -A to specify local address for bind(). 2007-03-08 14:37:00 +00:00
Bruce M Simpson
f3bb407b7c Support IP_SENDIF in -CURRENT. 2007-03-08 14:27:24 +00:00
Bruce M Simpson
14dd02e134 Put this old tool for dumping PCI expansion ROM images somewhere useful.
WARNING: THIS IS NOT STABLE ON NON-I386 ARCHITECTURES, AND NEEDS SPECIFIC
KNOWLEDGE OF THE ADDRESS SPACE ON YOUR SYSTEM TO WORK.
2007-03-02 13:53:23 +00:00
Bruce M Simpson
df7babd689 Add -t to set IP TTL. 2007-03-01 18:36:16 +00:00
Bruce M Simpson
2b743a9e9d Introduce a test program for IPv4 broadcast datagram send. 2007-03-01 13:26:13 +00:00
Bruce M Simpson
3763835bfe Add a regression test for ethernet link-layer multicast memberships. 2007-02-25 01:58:02 +00:00
Robert Watson
2dca4d3364 Add 's' after printing the send interval to make it clear it's a send
interval.
2007-02-08 15:37:13 +00:00
Pawel Jakub Dawidek
02215f1e60 Allow to use umastat on coredumps.
Reviewed by:	rwatson
2007-02-06 17:57:20 +00:00
Bruce M Simpson
3250f640aa For the IPv4 multicast membership socket regression test:
Add command line flags to increase the number of test iterations.
 Be deterministic by default, for automated operation.
 Better document assumptions.
2007-02-02 21:10:37 +00:00
Sam Leffler
421e1cce17 create empty opt_ah.h for compiling athstats.o; it just needs
the PHY definitions and not the descriptor so it doesn't matter
if it's correct relative to the hal.o
2007-02-02 02:39:56 +00:00
Rong-En Fan
438e97c073 Remove old libmytinfo link.
Approved by:	delphij (mentor)
Requested by:	ache
2007-02-01 08:45:27 +00:00
Pawel Jakub Dawidek
65e2b8ca1f Simple README file which shows how to use fstest. 2007-01-28 00:10:28 +00:00
Xin LI
9a9ea25f4a Replace the GNU gzip with a slightly modified NetBSD gzip. The
NetBSD version is a feature-to-feature re-implementation of GNU
gzip using the freely-redistributable zlib and this version is
expected to be mostly bug-to-bug compatible with the GNU
implementation.

 - Because this is a piece of mature code and we want to make
   changes so it is added directly rather than importing to
   src/contrib.
 - Connect newly added code to src/usr.bin/ and rescue/rescue
   build.
 - Disconnect the GNU gzip code from build for now, they will
   be eventually removed completely.
 - Provide two new src.conf(5) knobs, WITHOUT_BZIP2_SUPPORT and
   WITHOUT_BZIP2.

Tested by:	kris (full exp-7 pointyhat build)
Approved by:	core (importing a 4-clause BSD licensed file)
Approved by:	re (adding new utility during -HEAD code slush)
2007-01-26 10:19:08 +00:00
Pawel Jakub Dawidek
b20669bdef MFp4: - When new object is created, it's group ID can be set to process'
effective group ID or to group ID of its parent directory.
	- Add some comments from POSIX.
	- Verify that after successful O_TRUNC open, size is equal to 0.
2007-01-25 20:50:02 +00:00
Pawel Jakub Dawidek
33e0d352b2 MFp4: When user is not a member of the group which owns a file, even if
he is the file's owner, he can't set set-gid bit.
	POSIX requires to return 0 and clear the bit, but FreeBSD returns
	EPERM for UFS in such case. For now do the same in ZFS.
2007-01-25 20:48:14 +00:00
Jeff Roberson
0482a607bc - Add a horrible bit of code to detect tsc differences between processors.
This only works if there is no significant drift and all processors are
   running at the same frequency.  Fortunately, schedgraph traces on MP
   machines tend to cover less than a second so drift shouldn't be an issue.
 - KTRFile::synchstamp() iterates once over the whole list to determine the
   lowest tsc value and syncs adjusts all other values to match.  We assume
   that the first tick recorded on all cpus happened at the same instant to
   start with.
 - KTRFile::monostamp() iterates again over the whole file and checks for
   a cpu agnostic monotonically increasing clock.  If the time ever goes
   backwards the cpu responsible is adjusted further to fit.  This will
   make the possible incorrect delta between cpus as small as the shortest
   time between two events.  This time can be fairly large due to sched_lock
   essentially protecting all events.
 - KTRFile::checkstamp() now returns an adjusted timestamp.
 - StateEvent::draw() detects states that occur out of order in time and
   draws them as 0 pixels after printing a warning.
2007-01-24 21:19:56 +00:00
Jeff Roberson
4a2e6a080b - Print clock information so we know if something is not reported correctly
from the tsc.
 - Set skipnext = 1 for yielding and preempted events so we don't show the
   event that adds us back to the run queue.  It used to be 2 so we would
   skip the ksegrp run queue addition and the system run queue addition
   but the ksegrp run queue has gone away.
 - Don't display down to nanosecond resolution for scheduling events right
   now.  This can sometimes cause a division by zero.
2007-01-23 22:19:27 +00:00
Pawel Jakub Dawidek
53feb1d422 Add 3436 file system regression tests in 184 files.
Almost all regression tests are based on very flexible fstest tool.
They verify correctness (POSIX conformance) of almost all file
system-related system calls.

The motivation behind this work is my ZFS port and POSIX, who doesn't
provide free test suites.

Runs on:	FreeBSD/UFS, FreeBSD/ZFS, Solaris/UFS, Solaris/ZFS

To try it out:

	# cd fstest
	# make
	# find tests/* -type d | xargs prove
2007-01-17 01:42:12 +00:00
Robert Watson
0b71cfd780 Ignore EINPROGRESS error on TCP connect(), and pick up the result of the
non-blocking connect later using select().  This case didn't trigger on
my UP test box, but did on Peter's SMP test box.

Spotted by:	peter
2007-01-12 22:17:31 +00:00
Robert Watson
581f1f9421 Add a regression test for sending and writing zero bytes to sockets of
various types, as well as pipes and fifos for good measure.  RELENG_6
currently passes all of these tests, but 7-CURRENT fails 0-byte writes
and sends on all stream socket types (and fifos, as they are based on
stream sockets).

Bumped into by:	peter
Diagnosed by:	jhb
Problem of:	andre
2007-01-12 21:49:36 +00:00
Joel Dahl
80ffc9b73b Fix typos. 2007-01-12 08:44:55 +00:00
Sam Leffler
30a270b44b add man page 2007-01-12 05:36:28 +00:00
Sam Leffler
c31d92bb3d fix typo
MFC after:	1 week
2007-01-12 05:36:17 +00:00
Warner Losh
0a091fb1cd Remove 3rd clause, per email from bms 2007-01-11 05:00:30 +00:00
Stefan Farfeleder
9bb8020ab3 Add regression tests for exec.c rev 1.30. 2007-01-11 00:25:20 +00:00
David Schultz
2a5f50a641 Fix a few of the tests so that correct implementations actually pass them. 2007-01-07 09:25:22 +00:00
David Xu
1d6328e12b Fix compiling. 2007-01-06 11:32:15 +00:00
Jeff Roberson
93fb94795c - Add colors for up to 8 cpus. 2007-01-06 04:40:44 +00:00
David Schultz
f56f1d7735 Remove the test that ensures that when the string "nan(...)" is converted
to floating-point, the result is a quiet NaN.  The current implementation
may return a signaling NaN, and the vendor has no plans for changing this,
for reasons explained in the comment I added.
2007-01-03 21:28:26 +00:00
David Schultz
3f29b2ef51 Fix cut-and-paste bugs in the regression tests. 2007-01-03 05:38:08 +00:00
Scott Long
7e5459ee79 Expand a comment for clarity and fix a missed substitution. 2007-01-02 04:51:26 +00:00
Scott Long
0b51477603 Add a simple tool for checking the command queues in the MFI driver. Also add
a simple wrapper for running the MegaCLI tool.
2007-01-01 23:50:04 +00:00
Bruce M Simpson
a86ec33820 Drop all received data mbufs from a socket's queue if the MT_SONAME
mbuf is dropped, to preserve the invariant in the PR_ADDR case.

Add a regression test to detect this condition, but do not hook it
up to the build for now.

PR:             kern/38495
Submitted by:   James Juran
Reviewed by:    sam, rwatson
Obtained from:  NetBSD
MFC after:      2 weeks
2006-12-23 21:07:07 +00:00
David Xu
56073c9eac initialize mutex and cv. 2006-12-06 00:03:42 +00:00
David Xu
a3f452e8d8 Fix spelling. 2006-12-05 05:31:49 +00:00
David Xu
e986eeec92 Add a test for pthread's cv and cancellation. 2006-12-05 05:14:56 +00:00
Diomidis Spinellis
894407d359 New test cases demonstrating fixed bugs, and the reason why
fmtcheck can't be used.
2006-12-03 19:18:41 +00:00
Yaroslav Tykhiy
b1a7dc88f0 /usr/sbin/faithd is an INET6-specific tool, and now it won't be built
if MK_INET6 is "no", so add it to the MK_INET6 block.

PR:             bin/100805 (audit-trail)
2006-11-27 13:33:31 +00:00
Nick Hibma
e79fb5add3 Shorten the KERNCONF filename to the basename in the install target as
well as in the build target, although it is not used in this target.
2006-11-27 12:16:03 +00:00
Sam Leffler
cb3b333294 add rate knob for net80211 rate control modules
MFC after:	1 month
2006-11-26 19:56:25 +00:00
Alexander Leidinger
dc03b7f41f ah_if.m was removed a while ago 2006-11-26 14:41:17 +00:00
Xin LI
0ff56caba8 Make use of mk/ files from a fresh source tree, rather than
the currently installed ones.  This makes it possible to use
the script against Makefiles that uses bsd.own.mk on an old
system.

Submitted by:	bushman
2006-11-24 09:07:26 +00:00
Yaroslav Tykhiy
a6afe5ada8 Fix and extend the -j option to pkill/pgrep WRT the jail
wildcard specifications.  Earlier the only wildcard syntax
was "-j 0" for "any jail".  There were at least
two shortcomings in it:  First, jail ID 0 was abused; it
meant "no jail" in other utils, e.g., ps(1).  Second, it
was impossible to match processed not in jail, which could
be useful to rc.d developers.  Therefore a new syntax is
introduced: "-j any" means any jail while "-j none" means
out of jail.  The old syntax is preserved for compatibility,
but now it's deprecated because it's limited and confusing.

Update the respective regression tests.  While I'm here,
make the tests more complex but sensitive:  Start several
processes, some in jail and some out of jail, so we can
detect that only the right processes are killed by pkill
or matched by pgrep.

Reviewed by:	gad, pjd
MFC after:	1 week
2006-11-23 11:55:17 +00:00
Craig Rodrigues
d203e63281 Remove references to mount_devfs, mount_fdescfs, mount_linprocfs,
mount_procfs, and mount_std.

Reminded by:	ru
2006-11-22 00:26:55 +00:00
Jung-uk Kim
b8aa271342 Fix message size tests for msgsnd(3) and msgrcv(3). msgsz is the length of
actual message and it should not include size of message type.
2006-11-16 19:51:10 +00:00
Benno Rice
262f6969de Add the Transcend 2GB card specs. 2006-11-16 08:04:29 +00:00
Robert Watson
57c4583f70 Add a short regression test to try to exercise races in the non-atomic
nature of implied connect via sendto().  Oddly, uipc_usrreq.c implements
this for stream sockets, but doesn't set the flag in its protocol
definition so that it can actually be used.  As such, the stream test is
implemented but doesn't run for now.
2006-11-15 12:43:45 +00:00
Maxim Konovalov
52fc06f0f2 o Indent by tab. 2006-11-11 18:45:20 +00:00
Maxim Konovalov
08a8d24059 o Add several regression tests for dup(2), dup2(2) and fcntl(F_DUPFD).
Obtained from:	OpenBSD
2006-11-11 18:32:50 +00:00
Bruce M Simpson
0eea0451fe Update copyright date.
MFC after:	3 weeks
2006-11-09 11:45:44 +00:00
Bruce M Simpson
842259405d Use C99 types.
MFC after:	3 weeks
2006-11-09 11:42:38 +00:00
Bruce M Simpson
6774121741 Rewrite the format of pirtool output to match what the kernel currently
prints out if bootverbose is set. This is to facilitate the code being
removed from the kernel at a later date.

While we're here, fix the __packed structures, and add some other
PCI interrupt router IDs.

Submitted by:	jhb (with some tweaks)
MFC after:	3 weeks
2006-11-09 11:39:34 +00:00
Jung-uk Kim
c5f41de11c Use z modifier for size_t and ssize_t. 2006-11-07 23:28:30 +00:00
Diomidis Spinellis
0dc97cf078 Add the examples from the manual page. 2006-11-06 15:05:03 +00:00
Diomidis Spinellis
3b5adecb00 Updated results for bin/68981
PR:		bin/68981
2006-11-06 15:00:37 +00:00
Diomidis Spinellis
44d251df7a Regress.out is now regress.x.out. 2006-11-06 08:49:43 +00:00
Diomidis Spinellis
2c75d9c7ba Test the handling of supplied and default parameters. 2006-11-06 08:39:52 +00:00
Stefan Farfeleder
44c892dac2 Add regression tests for PR 105078. 2006-11-05 18:41:23 +00:00
Nick Hibma
1a82ee2eb9 Only use the filename part of the kernel configuration file as an argument to
KERNCONF after the file has been copied to the sys/${ARCH}/conf directory. This
allows the use of one kernel config file for multiple images. E.g.:

	NANO_KERNEL=../../../../software/nanobsd/default/SOEKRIS

MFC: after 6.2
2006-11-02 20:43:20 +00:00
John Birrell
87d0f81ce7 Add a build option to support WITH_CDDL and WITHOUT_CDDL, defaulting
to WITH_CDDL.

This option enables building code that is licensed under Sun's CDDL.
The DTrace code is licensed that way, so by default it will get built
unless the WITHOUT_CDDL option is used.

There is another build toggle, NO_CTF, which turns off execution of
ctfconvert and ctfmerge in sys.mk, but this can't be implemented as
WITH_/WITHOUT because bsd.own.mk isn't included in all Makefiles and
sys.mk is included automatically by make.
2006-11-01 09:02:11 +00:00
Julian Elischer
e0558bb990 Reworking of how to add ports.
submitted by: Jean Milanez Melo
2006-11-01 01:25:51 +00:00
Pawel Jakub Dawidek
b9116fb333 Add fs_unrefs field to the super block structure.
Sponsored by:	home.pl
2006-10-31 22:18:33 +00:00
Julian Elischer
d49da17b5e Add configuration stubs for adding package derived files to the various
sample configurations.
Submitted by Jeremie Le Hen and tested by Jean Milanez Melo.
2006-10-30 19:50:01 +00:00
Julian Elischer
d12c591b20 Add some code to support including files ffrom packages in the image.
Submitted by: Jeremie Le Hen and tested by Jean Milanez Melo.
2006-10-30 19:47:05 +00:00
Julian Elischer
0f49c887b9 Might as well move to the right place if we are not there.
The whole question of how much to rely on teh sources being in /usr/src
needs visiting.
2006-10-11 21:46:53 +00:00
Julian Elischer
aca334fe83 let the user know what configurations are available when asking for it. 2006-10-11 21:39:19 +00:00
Maxim Konovalov
13fff3d67b o Grammar.
Submitted by:	kris
2006-10-09 06:47:08 +00:00