- Does not require root access on the host, only in the rump
environment (which it gets by default)
- Manual clean-up of powerd process and rump-server socket is
not necessary - happens automatically
- Don't use a global, absolute path for the rump-server socket
For alarm_sensor, make sure events are still delivered after 'envstat -S'
(the cur_value was deliberately left at an alarm level and should not be
affected by the reset).
No longer need to skip the alarm_sensor and limit_sensor tests, since
pooka fixed passing of proplist to built-in modules.
Increase wait time for first powerd event report. (This should not be
needed, so there's probably a bug somewhere, but the increased timeout
lets us validate the rest of the sensor functionality.)
the output of the echo commands to atf_check itself. This fixes the
three new ssp failures.
Note that the raw, strcpy, vsprintf, and vsnprintf tests still fail, but
they failed in the old 'regress' style, too.
Of the 17 tests, 4 fail in both the regress and atf style. 3 additional
tests fails in atf that did NOT fail in regress: gets, fgets, and read.
I will investigate why, and update when I can, but it is still useful to
get these tests into the new format where they can be exercised.
variable "run_popcount". This is a really long-running test (it takes
several hours on a qemu-emulation on a 2.8GHz AMD Pheno II) but could
still be useful if you want to run it manually, with the command
atf-run -v run_popcount=YES
for PR/43655.
XXX The sigchild_dump test currently fails when execute under atf-run.
XXX It does not fail when executed directly from the shell, so there's
XXX something in atf that prevents the child process from dumping.
objects, and the RTLD_NODELETE and RTLD_NOLOAD flags to dlopen(3).
Mark libpthread as DF_1_NOOPEN and use it to test the functionality.
Somewhat taken from FreeBSD.
Fixes PR 42029.
OK from christos and joerg.
quite slowly when run under qemu.
Also, change the switch variable from "RESIZE_FFS_BIG_TESTS" to
"RESIZE_FFS_ALL_TESTS", and only check if it's set or not.
network with one router in the middle and checks traceroute from
one endpoint to another with both UDP and ICMP.
(i guess these test networking at least as much as traceroute
itself, but then again that's not a bad thing)
shell script and using rump_server, rump.ifconfig and rump.ping.
XXX: uses rump_allserver for now, though, since i noticed a problem
where the rump kernel syscall vector does not get updated for
dlopen()'d libraries (and hence if you dlopen librumpnet.so, socket()
still gives ENOSYS). Me be fixink it later.
Put real data into file systems before resizing: the test data
was randomly generated and is in pairs of files each a power-of-two and
power-of-two plus one bytes to hopefully catch block and frag issues.
Each test fills (nearly) the file system with test data. If shrinking,
it removes enough data so that the shrunken file system will be large enough
to accomodate the data. (It's done this way to hopefully ensure some or
most of the data will need to be moved when shrinking). The files are
then checked with MD5 against the known list. This particular method
was chosen to reduce the amount of data checked in while still retaining
reproducibility.
There are more tests to come; since resize_ffs(8) currently does not
support ffsv2 or byteswapped file systems, only a couple token expected-fail
test cases for those were added. Also, only 8:1 blocksize:fragsize
combinations are currently tested.
This is yet another example of a simple test which would be much
trickier to execute against the host kernel. You would either need
to put networking in a complete lockdown, or do some "statistical"
methods where you trigger the bug many many times and attempt to
ascertain a rising trend in mbuf count. And, of course, the leaked
mbufs don't go away from the host kernel once the test ends. In
contrast, we *know* that there is no other networking activity in
a rump kernel, so we can execute the operation exactly once, plus
the leaked mbuf "disappears" when the test is done.
tests being done, vnd isn't needed and adds a potential resource
conflict issue on the system running the test. As a bonus, the
tests run faster because less data is being shuffled around.
- Cannot test because make test prints:
.: Can't open /usr/share/atf/atf.header.subr
- The shell script common code needs to be fixed to follow regular shell
style.
- variables are underquoted
- uses `` instead of $()
- does not use local for local variables, prefixes with undescore
- needlessly uses braces for numeric and symbolic variables.
- uses a fifo to grab output, and does not clean it up properly on error
- should not exit with > 127 !!!
- PR bin/44177 is fixed
- test grow/shrink on a ffsv1 with 64k blocksize, which was broken until
recently
- make sure the partial cylinder left over is big enough so it doesn't
get thrown away now that resize_ffs properly uses the last cyl.
XXX TODO: add tests which ensure data integrity.
more than create an empty file system, grow it, and makes sure fsck
finds the result clean. The 'shrink' test does likewise for shrinking,
but is an expected failure at the moment due to PR bin/44177.
Fun fact: since the server daemonizes into its own process group,
it's not in atf's pgrp. Use rump_sys_reboot() in atf cleanup to
kill the server after the test.
Notably, md is a little tricky for this, since the ioctl that
configures the service also blocks in the kernel. Therefore, use
an additional pthread to probe when the service is fully configured
and the server can detach.
Also, rawpart love.
- Introduce randomness into "t_setenv" to avoid freeing environment
variables exactly in the order they have been allocated.
Also call unsetenv(3) twice to make sure it behaves well if the
environment variable doesn't exist.
- "t_getenv" is no longer a known failure after getenv(3) and getenv_r(3)
have been fixed.
1.) Always check the return value of setenv(3) and unsetenv(3).
2.) Test that calling setenv(..., ..., 0) doesn't overwrite environment
variables.
3.) Add a new test which mixes putenv(3) and setenv(3).
plaintext into into an encrypted image and back into plaintext by
doing rump I/O on /dev/cgd. There is one test to check that giving
the same password for both encryption and decryption produces the
same plaintext and another to check that giving a different passwords
does not produce the same plaintext.
This could be fairly easily extended to test all feature of cgd
(hint hint). For example, now cgd.conf is included in cvs, but
the only reason for that is that without further hacking cgdconfig
uses /dev/random quality random to generate the salt for a
pkcsetcetc_kdf2 cgconfig -g, and making an automated test block on
the entropy pool is just not good form. Details are everything.
Yesterday I thought I committed the increased timeout and when the
test was still failing for the autotests n hours later I noticed
I had actually failed to commit it. I did manage to commit something
in the evening, but the autotests were still failing this morning,
so I noticed I increased the timeout of the wrong test. I wonder
what will go wrong this time...
(and p.s.: 10240 is probably slow because it's O(n^2) with a constant
of quite a few)
- The use.fs property is gone.
- Mark the tests/fs/t_create:attrs test as broken when using the default
unprivileged-user:_atf setting. This probably deserves a fix somehow
but I'm not sure at this point.
need our shovel threads bound to proc1 instead of proc0 in order
to have access to the same set of descriptors as the implicit thread
which opens the fd in the rump kernel.
Also, sprinkle some printfs and make failure more dramatic.
fixes the puffs tests. pointed out by pgoyette.
watchdog just a little bit sooner. This maintains the spirit of the
test while avoiding the actual bug. This can be reverted once (if)
the PR is fixed.
now fails with EINVAL errno when variable is NULL, empty or contains
an `=' character; or value is NULL.
Adjust the man page accordingly, and exercize them in the existing
environment testcase.
and dm_targets_list ioctl to test if dm driver inside rump works.
It will be disable for now, because I need to find out why if I run this
test by atf-run it fails while running h_dm by hand works.
XXX. component.c in rump/libdm calls devsw_attach before dm_modcmd can do
that therefore unmodified modcmd returns error.
link-time errors caused by conflicts with normal user-space libraries
when we link statically.
The tests still pass for i386 after this set of changes, and this now
builds for sun2 (after a few more changes).
thread (and doing so would cause occasional failures when some
thread would cd out of the test mountpoint while another thread
was still running in there).
XXX: there's apparently some race condition which appears to trigger
if a broadcast arp arrives around the same time as the arpwhohas
is sent. This causes original packet to never be sent by the
arpwhohas requestor. If this rings a bell to someone, please let
me know.
second page on a file, then writes the first, and finally checks
it can read something expected. Adapted the from program supplied
by yamt in PR kern/36429.