o Change the result of gctl(001) now that a bogus verb still requires
a valid geom,
o Insert gctl(024) to test for an appropriate error when a bogus verb
is given that does have a proper geom parameter.
whole name. This does not unnecessarily close the door that in some
future we want to test on something other than md(4) devices.
Also add a "conf" action so that we can check whether a gctl actually
did the right thing or not. It's one thing to check that the result
strings are as expected, but it doesn't tell us if the end result is
correct. This needs a bit more fleshing out, but for now a visual
(i.e. manual) check suffices.
tool:
- Use uname(3) to query the OS name to report in the HTTP headers.
This is probably more useful than hard-coding FreeBSD.
- If no path is specified, create a 1k temporary file and send that
instead. Pass a file descriptor into http_serve() rather than using
a global fd.
- Add more carriage returns to the HTTP headers to be a bit more
correct. (Suggested by: andre)
- Read to a buffer rather than a single character to reduce the number
of recv() system calls pulling in the HTTP request.
- Properly wait for two, not one, \n's on input.
- http is a lightweight, multithreaded HTTP query tool, which performs
a timed measurement of the rate at which it can download files using
single-fetch HTTP/1.0. Other than specifying the IP and a URL path,
it requires zero configuration.
- httpd is a lightweight, multithreaded HTTP server tool, which exports
a single file of choice to the HTTP client, and responds with it no
matter what the request. Other than specifying the file to export,
it requires zero configuration.
The goal of these tools is to measure the network costs associated with
HTTP serving, rather than file system, HTTP protocol parsing, error
handling, etc, and as such, parts relating to less interesting components
of HTTP testing are intentionally omitted. Both are linked against
libpthread by default.
there for scripts to use.
Create a noauto fstab entry for the configuration partition (/cfg).
Add NANO_TOOLS env-var to point to the nanobsd sources relative to
NANO_SRC.
Add -h argument which prints a usage.
Add -b argument which skips build steps and goes directly to install steps.
Complain about extraneous arguments, it's usually a forgotten '-c'
Add convenience function to register customization function.
Add some sample customization functions:
cust_comconsole
cust_allow_ssh_root
Rename setup_diskless() to setup_nanobsd(), it makes more sense.
Add various comments etc.
mdconfig(8), because we need a disk to work on.
o Extend the number of tests now that we have a disk.
o Simplify the driver. All parameters are ASCII strings now.
The testsuite is based on a simple driver program that builds a
request from the arguments passed to it and issues the request to
Geom. The driver emits FAIL with the error string or PASS depending
on whether the request completed with an error or not. A -v option
has been added to the driver and causes the request to be dumped.
The -v option to prove(1) controls the -v option to the driver.
The testsuite itself contains a hash of which the key constitutes
the arguments and the value is the expected result.
creation and at time of update using an additional call to listen().
This test also exercises SO_LISTENQLIMIT, a forthcoming socket option
that allows the retrieval (but not setting) of the queue limit.
Discussed with: andre
relating to O_RDWR file descriptors, which while not defined in POSIX,
are in fact used:
(1) Revise assumption that we have two file descriptors when testing I/O
operations on a fifo. Provide cleanup routines that handle either
two or three file descriptors (including a kqueue descriptor).
(2) Add an openfifo_rw() routine to supplement openfifo().
(3) kqueue_setup() now configures an existing kqueue to monitor a new
file descriptor, rather than allocating a new kqueue to monitor two
existing file descriptors.
(4) Wrap all direct poll/select/kqueue/FIONREAD interactions in a single
function, assert_status(), which takes a file descriptor, kqueue
descriptor, assertion of read/writable/exception states, and
test description, then tests the assertion. This reduces the bulk
of calls in many of the tests, making them shorter, more readable,
and easier to determine correct.
(5) Add a new test_events_rdwr() function, which performs a basic create/
write/read event test on a O_RDWR fifo file descriptor. This is
currently failed by our fifo code in HEAD due to a bug in FIONREAD
handling. Fix to be merged shortly.