if (!strict_mode) { throw new SyntaxError('unspecified case'); }
This doesn't work for a few reasons:
1. 'strict_mode' is undefined in the test case exeuction context. That is, the test framework
does not force the test case into strict mode
2. The test case code looks like:
"use strict";
if (!strict_mode) ...
...
Note that 'strict_mode' is not set before being accessed
Really the metadata for these test cases should have a "@strict" property added to instruct the test
framework *not* to run the test if an implementation doesn't support strict mode.
tests covering a given chapter, N, without delving into subsections. This in turn
broken the Results page which was by default displaying individual results for chapters
13(.0) and 14(.0). Fixed.
directory next*
SputnikConverter:
- ES5TestCase.cs
* Case of JSON-based property names was wrong. Fixed
* Use the tests' 'id' instead of 'path' as the GlobalScopeTests keys
* Added 'id' and 'path' as Global Scope test metadata. The correct/clean solution here is to simply use 'path'
as the key to GlobalScopeTests, but this refactoring needs to be undertaken later when we can convert the
'normal' test cases over to use 'path' as the key as well
* Turns out we cannot depend on the message received by window.onerror to have some form of "syntax"
contained within it. Instead, we'll just rely on the regular expression ".", matches any one character,
for the short term
- SputnikTestCase.cs
* Same case issue as for ES5TestCases.cs
* Don't trust the Sputnik metadata for the ES5 section name or even test case id to be correct. Instead,
generate this information from the file path of the test case
TestCasePackager.py:
- added a new global, GLOBAL_SCOPE_FILES, which is a list of JS files found directly under test\suite\*.js
which include metadata for so-called globally scoped tests. These files are imported directly by the HTML
test harness
test\suite\*:
- regenerated Sputnik tests based on new converter
default.html:
- import SputnikGlobalScope.js. Really TestCasePackager.py should generate the global scope imports to
default.html automatically...
website\resources\scripts\testcases\*:
- test cases have shuffled from existing *.json files into globalscope.json
ES5 chapter. That is, ecma-262-toc.xml now has '.0' sections for all chapters
and I've manually modified (Sputnik Ch. 13 & 14) test case id's and paths
to utilize the '.0' suffix. Long term, SputnikConverter needs to perform
this transformation itself though.
were actually unique across the test cases. This *was* needed prior to November as we weren't
running each test case in it's own private global environment. The situation now is that
we're running each test within it's own iframe => the modifications are no longer needed.
Few small improvements to SputnikConverter:
- App.config file locations have been fixed
- template files get pushed alongside generated tool binaries
- the root path for Sputnik conformance files is "Conformance", not "tests"
- allow the main exe to throw exceptions so they can be properly debugged with VS
website\* out to test\*:
- Removed test\harness\ECMA-262-TOC.xml. The casing on this file was incorrect, but
more importantly it's a static file not generated by the harness
- Populated test\harness with the contents of website\resources\scripts\global\. In
the future, we need to update test\harness\* and propagate these changes out to
website\*
- Test\suite\ietestcenter is now a verbatim copy of the IE Test Center tests that
WERE under website\resources\scripts\testcases\*
- Moved all Sputnik tests from website\resources\scripts\testcases\* out to
test\suite\sputnik_converted
- Moved website\resources\scripts\testcases\excludelist.xml out to test\config\*. This
particular file was only used for the test conversion process to XML, and is not actually
needed by the website as best as I can tell
- Website\resources\scripts\testcases now only contains the XMLized test cases. This is
the right thing to do as the *.js files here weren't actually being used by the website
and the general public can now peruse the test cases directly via Mercurial