CSC/ECE 517 Fall 2015/oss M1505 MSV: Difference between revisions
No edit summary |
|||
Line 1: | Line 1: | ||
=='''M1505: Add conformance tests to unicode-bidi and fix conformance bugs'''== | =='''M1505: Add conformance tests to unicode-bidi and fix conformance bugs'''== | ||
This | This project involved adding conformance tests to the Servo implementation of the Unicode Bidirectional algorithm (unicode-bidi). | ||
=Problem Statement= | =Problem Statement= |
Revision as of 21:46, 31 October 2015
M1505: Add conformance tests to unicode-bidi and fix conformance bugs
This project involved adding conformance tests to the Servo implementation of the Unicode Bidirectional algorithm (unicode-bidi).
Problem Statement
Web browsers are expected to support international text, and Servo is no exception. The unicode-bidi library built into servo implements the Unicode Bidirectional Algorithm for display of mixed right-to-left and left-to-right text. This library's conformance with the Unicode Bidirectional Algorithm specification has yet to be comprehensively tested.
The primary objectives of this project involved:
- Adding code to tools/generate.py to download the two specification files listed below, that make up the conformance testsuite:http://www.unicode.org/Public/UNIDATA/BidiTest.txt and http://www.unicode.org/Public/UNIDATA/BidiCharacterTest.txt
- Conversion and extension of one or more test cases from the specification files into Rust test cases that can be run automatically.
Changes and Implementation
The following steps were performed in more or less serial order:
- The current directory being pointed to by the running Python instance was modified. Since this instance points by default to the directory where the source file exists, it was pointing to the /tools/ directory. Instead it was made to point to the /src/ directory, where it could modify / check existence of existing files and download new files.
- After changing the current directory, the predefined fetch() function was used to download and save the two files that make up the conformance test suite.
- Once the files were fetched several test cases were inserted to test the conformance of the unicode-bidi implementation. The test cases that were added included:
- Several cases of line reordering
- Several cases where the RTL recognition was checked
- Several cases where the LTR recognition was checked
- All cases where the removal of characters as per the step X9 were tested
- All cases where the characters that weren't supposed to be removed as per the step X9 were tested
Introduction to Mozilla Servo
Servo is a Web Browser engine written using the Rust programming platform. Servo is an experimental project build that is optimized for new generations of hardware, particularly mobile devices, devices with multi-core processors and those with high-performance GPUs. It's core design principles are focused on optimizing power efficiency along with maximizing parallelism.