Lab4: Messing around with tests

For this lab, we are to try and make the existing tests better. But before we start creating new tests we must first get the project that we are working with.

We will be working with ECMAScript and learn how to contribute toward Open-Standard.

The project that we are working on today is the following:

https://github.com/bterlson/test262-harness#test262-harness

In that Github, there are instructions on how to build the projects.

The first step that we must do is to clone the repo:

git clone https://github.com/bterlson/test262-harness.git

Once you have entered the repo enter the directory. Within the directory, we must now install.

npm install -g test262-harness

Next step all we need to do is run the tests to make sure it works

test262-harness test/**/*.js

When you finish running the test you should have something similar above.

In our case, it seems like we got errors from Default locale. But otherwise, everything should be working as it should.

Our next step is to modify the array.reverse test.

For this lab, I have picked S15.4.4.8_A1_T1.js.

From what the test looks like we can re-use the available variables and use it for our own tests that we will be writing. It should be relatively simple as we will be replacing those errors and if statement with assert.sameValue();


// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*—
info: |
The elements of the array are rearranged so as to reverse their order.
The object is returned as the result of the call
esid: sec-array.prototype.reverse
es5id: 15.4.4.8_A1_T1
description: Checking case when reverse is given no arguments or one argument
—*/
//CHECK#1
var x = [];
var reverse = x.reverse();
assert.sameValue(x, reverse, "Value are not the same!");
//CHECK#2
x = [];
x[0] = 1;
var reverse = x.reverse();
assert.sameValue(x, reverse, "Value in X[0] = 1; Actual: " + (reverse));
//CHECK#3
x = new Array(1, 2);
var reverse = x.reverse();
assert.sameValue(reserve, x, "Value does not match. Actual: " + (reverse));
//CHECK#4
assert.sameValue(2, x[0], "Value does not match. Actual: " + (x[0]));
//CHECK#5
assert.sameValue(1, x[1], "Value does not match. Actual: " + (x[1]));
//CHECK#6
assert.sameValue(x.length, 2, "Length does not match. Actual: " + (x.length));
/*
if (reverse !== x) {
$ERROR('#1: x = []; x.reverse() === x. Actual: ' + (reverse));
}
if (reverse !== x) {
$ERROR('#2: x = []; x[0] = 1; x.reverse() === x. Actual: ' + (reverse));
}
//CHECK#3
x = new Array(1, 2);
var reverse = x.reverse();
if (reverse !== x) {
$ERROR('#3: x = new Array(1,2); x.reverse() === x. Actual: ' + (reverse));
}
//CHECK#4
if (x[0] !== 2) {
$ERROR('#4: x = new Array(1,2); x.reverse(); x[0] === 2. Actual: ' + (x[0]));
}
//CHECK#5
if (x[1] !== 1) {
$ERROR('#5: x = new Array(1,2); x.reverse(); x[1] === 1. Actual: ' + (x[1]));
}
//CHECK#6
if (x.length !== 2) {
$ERROR('#6: x = new Array(1,2); x.reverse(); x.length === 2. Actual: ' + (x.length));
}
*/

view raw

Lab4.js

hosted with ❤ by GitHub

After writing the test lets make sure everything still works as it. To do this we can re-run the test script again to see if there any more additional fails added because of us.

test262-harness test/**/*.js

Great!! Everything looks like its working and we have not broken anything from our code tests. With this completion, it will be our first attempt at writing and analyzing with open standard code.

Leave a comment