Commit graph

273 commits

Author SHA1 Message Date
Ben Gras
1f317d315c run: allow scripts to be run as root
Forward-port of the run script change in the testvnd
commit on the 3.3.0 branch by David.

Needed to cleanly run the testisofs test as root in
the Jenkins environment.

'While here,' also fix messy which output in testsh2.

Change-Id: I6ec472e1386a54ae74b6e55394f01fa7c5ce53a9
2013-11-28 13:31:37 +00:00
Ben Gras
d3e3c78051 testmfs, testisofs: MFS format, ISO functionality
testmfs: catch MFS format changes

This test tests mkfs.mfs will generate the same FS image given the same
input files. mkproto creates a proto file (normalizing directory entry
order). The assumption is that a change in the output flags a tacit
change in FS format, and that a FS format change will cause the image
to change.

        . Changes to mkfs.mfs that innocently change the format can
          change the sha1 output in the script along with it.
        . The assumption is that corresponding versions of mkfs.mfs and
          MFS will always work together; otherwise a lot breaks (ramdisk etc.)
        . Therefore, as long as a generated FS image stays the same with the
          same input now, incompatible MFS changes will still be flagged,
          even if they work together with the current mkfs.mfs.

testisofs: test ISO filesystem

        . to test isofs: prepare an ISO FS image using writeisofs, copy it
          to a RAM device, mount it using the iso9660fs server, compare the
          SHA1 contents of the files on the ISO with the inputs.
        . use su to run certain commands in the script as root

run script: run shell script tests

	. they are installed without .sh so should be
	  searched for as such
	. add diagnostic when tests are skipped

Change-Id: I30daff58e1e43903dacf3c99996a4a0e7d819b6b
2013-11-21 10:17:43 +00:00
Gerard
f1b0deacf3 Replaced add64, add64u and add64ul with operators.
Change-Id: Ia537f83e15cb686f1b81b34d73596f4298b0a924
2013-11-13 13:11:33 +00:00
Thomas Cort
1e33498f8c Importing usr.bin/hexdump
Replaces commands/hexdump as well as commands/od.
No Minix-specific changes were needed.

test/testsh2.sh was modified to match the spacing
used in the output of the NetBSD od command.

Change-Id: I65ee1d30e8cdd546097462df7c38c2d38f3e891d
2013-10-29 15:18:45 -04:00
David van Moolenbroek
eafe5cb04a test75: fix child run time check bug
Change-Id: Ieb071f01bfd5a07093868e5dbfc7d941f435bf20
2013-10-14 13:20:44 +02:00
Ben Gras
374af94b2b testsh2: allow compiler fallback to gcc
. lets test work in 'pure DESTDIR' environment

Change-Id: If7d45f01f20bc6369455d706b5ad47d36946fce3
2013-10-02 19:15:23 +02:00
Ben Gras
b2dcc910d4 test75: force child to use a minimum of cpu time
test75 sometimes false-fails if something else is going on
at the same time, presumably because the child doesn't spin
enough to register a nonzero getrusage() cpu time value, as
spin() uses the real time to limit the spinning.

this change forces spin() to do a minimum amount of spinning
before exiting, regardless of scheduling.

Change-Id: I57c63d22969bba418f36bcc8c5ace2b6fb445968
2013-10-02 16:26:27 +02:00
Kees Jongenburger
f88b0924f3 arm:fix for test54 and test55
Define the file name templates as char arrays to prevent the
toolchain from mapping them read-only.

Change-Id: Ib2395587b62d4a6ff19c88adc4246dcb41344a53
2013-09-27 15:15:37 +02:00
Kees Jongenburger
88c79fc9e9 posix-test:fix times test
Applications should use sysconf(_SC_CLK_TCK) to determine the number
of clock ticks per second as it may  vary  from system to system.
2013-09-26 09:05:28 +02:00
Ben Gras
c84edbc9c6 test70: reduce ITERATIONS
. full number was needed to reliably trigger the race
	  condition
	. takes a bit too long (7 mins on fast x86 hardware) for a
	  condition that "can't" happen again, so let's cut the iteration
	  count and trust that the test will trigger soon enough for
	  a similar condition in the future.

Change-Id: I2d38b87c25327adbbff91b7db6191648aa1dd8fd
2013-09-16 15:33:44 +00:00
Ben Gras
b5951f9663 vm: enable filemap=1 by default
. turns on mmap() functionality for files by default
	. also causes exec() to use it to map in executables
	  without copying and with sharing those pages with the
	  disk cache and other instances of the executable

Change-Id: Idb94dfe110eed916cf83b12c45e1a77241a2cee5
2013-09-13 12:56:41 +00:00
Thomas Cort
9f4b8dc11b kernel: move do_padconf and add a test case
padconf is specific to arm, so it's being moved to kernel/arch/earm.

Add a test case to ensure the proper error is returned on non-ARM
systems.

Change-Id: I07ebbe64825d59bc0ef9c818d3d54891dafb4419
2013-08-29 09:23:10 -04:00
Lionel Sambuc
891fbc18d7 Importing usr.bin/wc
Change-Id: If174bd2bfc3ef38f21d45b5ba0567ac7d99dc608
2013-08-25 18:51:35 +02:00
Lionel Sambuc
17120a359b Fix testsh1 execution in /usr/tests/minix-posix
Change-Id: Ib9ee7d9af72b5da2c6585cc11f80feefd4de5844
2013-08-24 15:08:21 +02:00
Lionel Sambuc
cde59bcba6 Fix e_f to print the saved errno.
Change-Id: I1ee366717759429f4c62432395344aa924f03183
2013-08-23 13:20:42 +02:00
Ben Gras
3161c603a6 increase -Werror resilience
for bin/, commands/, libexec/, sbin/, test/, usr.bin/ and usr.sbin/.

Change-Id: I8fa12c3cd86865311cef71b7faa7cf4fa785174f
2013-08-21 13:53:39 +02:00
David van Moolenbroek
4e00414360 blocktest: make 64-bit native 2013-08-08 17:36:45 +02:00
Lionel Sambuc
0cdf705cc6 Enable optional GCC install and GCC improvements
-By adding MKGCC=yes and MKGCCCMDS=yes on the make commandline
   it is now possible to compile and install GCC on the system.

   Before doing this, if you are not using the build.sh script,
   you will need to call the fetch scripts in order to retrieve
   the sources of GCC and its dependencies.

 -Reduce difference with NetBSD share/mk

   Move Minix-specific parameters from bsd.gcc.mk to bsd.own.mk,
   which is anyway patched, so that bsd.gcc.mk is now aligned
   on the NetBSD version.

 -Clean libraries dependencies, compiles stdc++ only if gcc is
   also compiled (it is part of the gcc sources)

 -Correct minix.h header sequence, cleanup spec headers.

 -Fix cross-compilation from a 32bit host targeting MINIX/arm

Change-Id: I1b234af18eed4ab5675188244e931b2a2b7bd943
2013-07-12 14:22:03 +02:00
Xiaoguang Sun
64f10ee644 Implement getrusage
Implement getrusage.
These fields of struct rusage are not supported and always set to zero at this time
long ru_nswap;           /* swaps */
long ru_inblock;         /* block input operations */
long ru_oublock;         /* block output operations */
long ru_msgsnd;          /* messages sent */
long ru_msgrcv;          /* messages received */
long ru_nvcsw;           /* voluntary context switches */
long ru_nivcsw;          /* involuntary context switches */

test75.c is the unit test for this new function

Change-Id: I3f1eb69de1fce90d087d76773b09021fc6106539
2013-07-01 23:00:47 +02:00
Ben Gras
c4d355f7bb test42: skip single step test
Change-Id: If57fc467b0ad28e0e9db27c6dadbe49e59dbc463
2013-06-25 13:51:24 +02:00
Ben Gras
456359aa72 retire 64-bit conversion functions
Change-Id: Ib6b81403f877c363a286c654e0524fa1cb781b80
2013-06-24 16:50:57 +02:00
Anton Kuijsten
2e3046757a LLVM bitcode for almost the whole source tree
Change-Id: Ibc6f89de112e0649c3a3bfe49c2baa2ed0746212
2013-06-18 10:49:53 +02:00
Ben Gras
fa86f72420 fix for tap tests
Change-Id: Ic79cfdaf420cbf15a1aba6e30c821f35b726d0da
2013-06-17 11:43:57 +00:00
Ben Gras
5120b43334 make test run script produce TAP if desired
. primarily intended for jenkins
	. see http://testanything.org/ for more info

Change-Id: If0e942f75898eed640f9edd89ef8ffd0bab9726e
2013-06-16 18:57:19 +00:00
Anton Kuijsten
1d71e39b73 Gold linker support for entire source tree 2013-06-11 22:51:02 +02:00
Qi Yong
c50a22578e remove vm_yield_block_get_block leftovers. 2013-06-01 20:51:31 +08:00
Ben Gras
49b9165251 vm: mmap support
. test74 for mmap functionality
	. vm: add a mem_file memory type that specifies an mmap()ped
	  memory range, backed by a file
	. add fdref, an object that keeps track of FD references within
	  VM per process and so knows how to de-duplicate the use of FD's
	  by various mmap()ped ranges; there can be many more than there can
	  be FD's
	. turned off for now, enable with 'filemap=1' as boot option

Change-Id: I640b1126cdaa522a0560301cf6732b7661555672
2013-05-31 15:42:01 +00:00
Ben Gras
49eb1f4806 vm: new secondary cache code
Primary purpose of change: to support the mmap implementation, VM must
know both (a) about some block metadata for FS cache blocks, i.e.
inode numbers and inode offsets where applicable; and (b) know about
*all* cache blocks, i.e.  also of the FS primary caches and not just
the blocks that spill into the secondary one. This changes the
interface and VM data structures.

This change is only for the interface (libminixfs) and VM data
structures; the filesystem code is unmodified, so although the
secondary cache will be used as normal, blocks will not be annotated
with inode information until the FS is modified to provide this
information. Until it is modified, mmap of files will fail gracefully
on such filesystems.

This is indicated to VFS/VM by returning ENOSYS for REQ_PEEK.

Change-Id: I1d2df6c485e6c5e89eb28d9055076cc02629594e
2013-04-24 10:18:16 +00:00
Ben Gras
adf2032bc0 vm: remove secondary cache code
This commit removes the secondary cache code implementation from
VM and its usage from libminixfs. It is to be replaced by a new
implementation.

Change-Id: I8fa3af06330e7604c7e0dd4cbe39d3ce353a05b1
2013-04-24 10:18:10 +00:00
Kees Jongenburger
fcb66ed1b5 run script:return 1 upon test failure.
Change-Id: If3c9d636a04da7f7b4098b58d29c492c664dab1a
2013-04-21 20:18:11 +02:00
Ben Gras
32a4e0d84d many new tests
. test70: regression test for m_out vfs race condition

The following tests use testcache.c to generate test i/o
patterns, generate random write data and verify the reads.

	. test71: blackbox full-stack test of FS operation, testing
	  using the regular VFS interface crazy i/o patterns
	  with various working set sizes, triggering only
	  primary cache, also secondary cache, and finally
	  disk i/o and verifying contents all the time
	. test72: unit test of libminixfs, implementing
	  functions it needs from -lsys and -lblockdriver
	  and the client in order to simulate a working
	  cache client and backend environment.
	. test73: blackbox test of secondary vm cache in isolation

Change-Id: I1287e9753182b8719e634917ad158e3c1e079ceb
2013-04-19 16:21:48 +00:00
Ben Gras
072d916c1c vfs: fix null deref, pfs: add fchmod()
. vfs read_only() assumes vnode->v_vmnt is non-NULL, but it can
	  be NULL sometimes
	. e.g. fchmod() on UDS triggered NULL deref; add a check and
	  add REQ_CHMOD to pfs so unix domain sockets can be fchmod()ded
	. add to test56

Change-Id: I83c840f101b647516897cc99fcf472116d762012
2013-04-19 17:06:56 +02:00
Ben Gras
0245723d5f run script: correction, clarity
Change-Id: Ibf583c6277c67646dd90d7c49482daf4e76b78b6
2013-04-19 10:24:50 +00:00
Ben Gras
2a44efb1c0 test run: feature for nicer jenkins interaction
. add -l option to list available tests
	. add -t option to specify tests to run
	. also improve the root check a bit by
	  not relying on an environment var
	. do not print the human-friendly banner & summary
	  if a test list is given to make the test
	  results easy to parse

Change-Id: Id0f87d485240b1924d667af788338ae31c3dc94c
2013-04-18 14:28:03 +00:00
Ben Gras
5977114c42 tests cleanup
. make common.o link with the tests instead of being
	  #included as common.c
	. fix warnings about missing prototypes by declaring functions
	  static
	. reduces some duplicated code

Change-Id: Ic2a765d7f5886add5863190efec3fdd2d2ea2137
2013-04-17 22:00:59 +00:00
Antoine Leca
3ae6c600a9 Add tests for utime*s() functions 2013-04-12 18:55:40 +00:00
Thomas Cort
b3cb63379e tests/run: add test69 to setuids.
test69 requires superuser powers to adjust the time. This caused
the test to fail when run as a normal user. The patch adds test69
to the setuid list which will allow regular users to execute it.

Patch contributed by Antoine Leca.
2013-04-08 14:22:27 +02:00
Thomas Cort
15b3d77268 libc: add adjtime() system call.
Implement the adjtime() system call and add a test for it to test69.
Additionally, install the adjtime.2 and clock_*.2 man pages.
2013-04-04 15:04:54 +02:00
Thomas Cort
516fec97d9 libc: add clock_settime() system call.
This also adds the sys_settime() kernel call which allows for the adjusting
of the clock named realtime in the kernel. The existing sys_stime()
function is still needed for a separate job (setting the boottime). The
boottime is set in the readclock driver. The sys_settime() interface is
meant to be flexible and will support both clock_settime() and adjtime()
when adjtime() is implemented later.

settimeofday() was adjusted to use the clock_settime() interface.

One side note discovered during testing: uptime(1) (part of the last(1)),
uses wtmp to determine boottime (not Minix's times(2)). This leads `uptime`
to report odd results when you set the time to a time prior to boottime.
This isn't a new bug introduced by my changes. It's been there for a while.
2013-04-04 15:04:54 +02:00
Thomas Cort
18ad4c0799 test69: add clock_getres() and clock_gettime() tests. 2013-04-04 15:04:53 +02:00
Thomas Cort
e67fc5771d libc: add clock_getres()/clock_gettime() system calls.
In order to make it more clear that ticks should be used for timers
and realtime should be used for timestamps / displaying the date/time,
getuptime() was renamed to getticks() and getuptime2() was renamed to
getuptime().

Servers, drivers, libraries, tests, etc that use getuptime()/getuptime2()
have been updated. In instances where a realtime was calculated, the
calculation was changed to use realtime.

System calls clock_getres() and clock_gettime() were added to PM/libc.
2013-04-04 15:04:53 +02:00
David van Moolenbroek
3be9c7c33b Rename "struct partition" to "struct part_geom"
Change-Id: Ifaf9795ba70f5b933599b2a6ec9415e6bd13200c
2013-03-20 16:14:21 +00:00
Lionel Sambuc
5180c3cfb9 Installing posix tests in /usr/tests/minix-posix
The goal is to enable anyone to simply run our current test suite.

Change-Id: I27d8856cb82a4be2baa5dc5273526383b7f4fc2c
2013-03-13 10:43:16 +01:00
Thomas Veerman
24ac5ce3f9 test56: unlink proper test file
Change-Id: I215f0d00b8e077930c4e93d192553eaf0d2a353f
2013-03-08 15:45:53 +00:00
Thomas Veerman
76ddef10da UDS: terminate canonical path string
When you provided a string with junk after the terminating nul to a
UNIX domain socket and used bind(2), the canonical path function would
not properly terminate the new string. This caused VFS to return
ENAMETOOLONG on an otherwise valid path name.

Test case is added to test56.

Change-Id: I883b6be23d9e4ea13c3cee28cbb3726343df037f
2013-03-08 15:42:32 +00:00
Thomas Veerman
1ba514e19c UDS: check connection state better
Select(2)ing on UNIX domain sockets was not working properly because
connection state wasn't properly checked/propagated. So selecting for
a read descriptor and closing the write descriptor on the other end
didn't cause select to return. Similarly, read(2) kept blocking while
it should return an error when the other end closed the socket.

Change-Id: I3f5bb52af1a6b03313d508bf915fc838357ba450
2013-03-07 10:49:21 +00:00
Thomas Veerman
2e723784ff test68: test pipe2 functionality
Change-Id: Idb15ec83983d0b052232c9533f89d637229d19df
2013-02-28 10:08:54 +00:00
Thomas Veerman
9c99b3b3b9 test67: test opening files and sockets with O_CLOEXEC
Change-Id: If71e61f830c6d3b5154368e189baa4f70bd73850
2013-02-28 10:08:54 +00:00
Lionel Sambuc
8e4736f2df Removing obsolete _MINIX define
Change-Id: Id33ac7e973d1c0e249b690fe44a597474fac6076
2013-02-26 09:44:20 +00:00
Thomas Veerman
e104b46005 test set: use clear 2013-02-21 10:29:09 +00:00