GSoC 2016 Proposal

STUDENT NAME: Wei Yulan
TITLE: Multi-OS and Multiarch Continuous Tests Infrastructure
DATE: 25th Mar 16

ABSTRACT

For continuous testing strace in multi-os and multiarch, I propose to setup and 
configure an environment based on Travis CI or OpenSuse Build Service. We can 
run tests on various architectures and Linux distributions automatically on 
each commit and patch submission.

SYNOPSIS

The strace is a well-known diagnostic, debugging tool for Linux users, widely 
used in various architectures with various Linux distributions. To ensure the 
reliability of strace, it is necessary to run tests on different platforms to 
make sure it will work under all circumstances.

Here are two solutions that I proposed.

The first solution is to setup and configure a testing infrastructure based on 
Travis CI and qemu. Travis CI is a useful service that allows user to run 
continuous testing on it. I will emulate the different architecture by qemu, 
and make qemu images with testing environment for each linux distributions. 
Moreover, running test with different compilers is obviously more feasiable and 
easier to deploy than trying it under different architectures and linux 
distributions. Also, docker can be used in this project because it can provide 
convienence in deploying compilers in different testing environments.

The second solution is OpenSuse Build Service. I noticed that the running time 
of Travis CI is not unlimited. OpenSuse Build Service is more flexible than 
Travis CI. OpenSuse Build Service provides a native multi-os and multiarch 
building environment, although it seems not easy to configure.(I had tried to 
run tests on OpenSuse Build Service, but it doesn’t work on some arch like 
armv6l.) Compared to other tools, the advantages of OpenSuse Build Service are 
when you submit your code, it will cross-compile your codes into executable 
file under all the architectures they supported. In this perspective, it will 
be convenient to use it to test strace on multi-os and multiarch. 

In order to find out the better solution, I will keep investigating Travis CI 
and OpenSuse Build Service by trying to build the continuous testing 
environment on both devices. If possible, I will also consider to combine the 
OpenSuse Build Service(it provides APIs) and Travis CI together, so that we can 
take advantage of both of them. As we know, strace is a project which is 
cooperated under git. Travis CI can detect the new commit, and run the tests 
automatically through Github Service Hook, but OpenSuse Build Service needs us 
to push the codebase manually every commits. We can submit codes to Travis CI 
and it will package them and send it to OpenSuse Build Service, thus, we can 
make use of advantages of both.

Here are some links I referred.

        • https://www.tomaz.me/2013/12/02/running-travis-ci-tests-on-arm.htmlhttps://hub.docker.com/r/multiarch/qemu-user-static/https://hub.docker.com/r/multiarch/crossbuild/https://build.opensuse.org/apidocs/https://build.opensuse.org/package/show/home:aheadlead/strace#

RELEVANT SKILLS

I am Wei Yulan, a junior from China, majored in Computer Science at Nanjing 
University of Aeronautics and Astronautics.

I have been a Linux user for 4 years, almost all the programming work I do is 
under UNIX-like systems with vi (Java is an exception). I have been writing C 
for 5 years since the high school. Also, I started to write Python after I 
entered university. The other relevant skills include linux system programming, 
shell programming and git.

I had internship with Alibaba Inc last year, working in AliCloud Computing 
relative database service group. I built a Java VM performance monitor system 
for the internal distributed java cluster, aimed at discovering and tracking 
high frequency garbage collection, based on JStorm(an internal implementation 
of Storm), Grafana, InfluxDb, etc.

I have built strace on my machine and understood how the test script works. I 
also have read the mailing lists about my project from last year until now. 

I have some open source projects following on github for your reference.

        • https://github.com/aheadlead/libcjstat (A header-only library for get 
statictics from running Hotspot Java VM written in C)
        • https://github.com/aheadlead/tinify-cli (A command-line client for 
tinyjpg.com written in Python, no english version readme at the moment)

I knew GSoC and decided to participate in GSoC a few days ago when I saw the 
news. Honestly, I hardly had any time for preparation, and the plan for this 
idea is rough. The strace is the only one project in GSoC organization lists 
that I applied. I am very excited for this opportunity and I hope I can make 
contribution to it. In addition, I have enough to work on this project over the 
summer as I do not have any travel planned.

----
Sincerely, 
Wei Yulan
Computer Science
College of Computer Science and Technology
Nanjing University of Aeronautics and Astronautics


------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140
_______________________________________________
Strace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to