From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: References: Date: Sat, 29 Mar 2014 13:57:15 +0000 Message-ID: From: Riddler To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: multipart/alternative; boundary=001a11c3d864234af804f5bf32fd Subject: Re: [9fans] Regression testing Topicbox-Message-UUID: d272742e-ead8-11e9-9d60-3106f5b1d025 --001a11c3d864234af804f5bf32fd Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello, Yes, I am envisioning automated tests. I've built a limited set of tests for personal projects and for a company I worked in for a while, so I have a rough idea of where to go. I'll certainly look into system calls, seems a sensible place to start. Any advice or pointers you (or anyone else) has would be greatly appreciated. Also, I would quite like to see those fp tests if you would be so kind. On Wed, Mar 26, 2014 at 4:25 PM, erik quanstrom wrot= e: > On Wed Mar 26 07:11:38 EDT 2014, riddler876@gmail.com wrote: > > > Hello, > > > > I would also be quite interested in helping if people are embarking on > such > > a project. > > > > I'm a Computer Science student and I've been using a raspberry pi tryin= g > to > > learn more about plan 9. Creating regression tests could be a good way > for > > me to poke around the system learning how it works while still > contributing > > something useful to the community. > > i think this could be quite valuable. at a minimum, you will learn alot. > > i assume that you mean automated tests. many things like usb behavior > on unplugging is hard to automate without some special equipment. > > imo, the easiest thing to automate would be the system calls. there > are very few of them. i would first start by checking that they do > reasonable > things with arguments in the text, heap, stack, and various forms of > invalid addresses, especially just above or just below valid addresses. > > it is also pretty straightforward to test a the kernel devices to make su= re > they all handle invalid file names/directory names well, deal with bad > input to control files well, etc. > > (an idea that occurs to me while typing this is to have a special > syscallmal > for allocating things with system call lifetime. it allows one to add th= e > rule > that everything syscallmal'd must be free'd on kernel exit.) > > another area that might not be as easy (as you'll have to dive into some > obtuse stuff) would be floating point. but this would be very helpful, > because > it has been a long time since serious effort was put into this. > floating point should well behaved with the usual operations, > and with standard library functions (and ape, too), with respect to the > usual problem > areas such as overflow, underflow, -0., =C2=B1=E2=88=9E, and denormals, = with all > fcr (see getfcr(2)) settings, and with all architectures. or at least > amd64, > rpi and something with emulated fp such as the rb. > > run-on sentences '=E1=B4=99' us. > > i'd be willing to give you some pointers on how to continue. i have some > scripts that i used to iron some of the worst bugs out of fp so that pyth= on > could pass some regression tests. > > - erik > > --001a11c3d864234af804f5bf32fd Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hello,

Yes, I am envisioning automated t= ests.
I've built a limited set of tests for personal projects and f= or a company I worked in for a while, so I have a rough idea of where to go= .=C2=A0
I'll certainly look into system calls, seems a sensible place to start.= Any advice or pointers you (or anyone else) has would be greatly appreciat= ed.
Also, I would qu= ite like to see those fp tests if you would be so kind.

On Wed, Mar= 26, 2014 at 4:25 PM, erik quanstrom <quanstro@quanstro.net> wrote:
On Wed Mar 26 07:11:38 EDT 2014, riddler876@gmail.com wrote:

> Hello,
>
> I would also be quite interested in helping if people are embarking on= such
> a project.
>
> I'm a Computer Science student and I've been using a raspberry= pi trying to
> learn more about plan 9. Creating regression tests could be a good way= for
> me to poke around the system learning how it works while still contrib= uting
> something useful to the community.

i think this could be quite valuable. =C2=A0at a minimum, you will learn al= ot.

i assume that you mean automated tests. =C2=A0many things like usb behavior=
on unplugging is hard to automate without some special equipment.

imo, the easiest thing to automate would be the system calls. =C2=A0there are very few of them. =C2=A0i would first start by checking that they do re= asonable
things with arguments in the text, heap, stack, and various forms of
invalid addresses, especially just above or just below valid addresses.

it is also pretty straightforward to test a the kernel devices to make sure=
they all handle invalid file names/directory names well, deal with bad
input to control files well, etc.

(an idea that occurs to me while typing this is to have a special syscallma= l
for allocating things with system call lifetime. =C2=A0it allows one to add= the rule
that everything syscallmal'd must be free'd on kernel exit.)

another area that might not be as easy (as you'll have to dive into som= e
obtuse stuff) would be floating point. =C2=A0but this would be very helpful= , because
it has been a long time since serious effort was put into this.
floating point should well behaved with the usual operations,
and with standard library functions (and ape, too), with respect to the usu= al problem
areas such as overflow, underflow, =C2=A0-0., =C2=B1=E2=88=9E, and denormal= s, with all
fcr (see getfcr(2)) settings, and with all architectures. =C2=A0or at least= amd64,
rpi and something with emulated fp such as the rb.

run-on sentences '=E1=B4=99' us.

i'd be willing to give you some pointers on how to continue. =C2=A0i ha= ve some
scripts that i used to iron some of the worst bugs out of fp so that python=
could pass some regression tests.

- erik


--001a11c3d864234af804f5bf32fd--