GSoC with ScummVM : Weekly Report (Week 5-6)

Hi everyone,
Once again its time for some update on my work. Here is a brief summary :

  • Being done with the Save games test, I moved on to testing miscellaneous features, which include Mutexes,timers, Date time and events.
  • Testing datetime was straightforward, get the date calculated from the backend, verify that it increases fine by putting delays, and if the session is interactive, display the date and verify directly with user.
  • Testing mutexes was a bit complicated, It is not always possible to generate a situation in which an incorrect mutex implementation fails, However, I came up something like this:
    Took to shared variables: first and second.
    <Critical Section>
    first ++;
    delay(2)
    second *= first
    </Critical Section>Here, the output depends upon whether the mutex behaves correctly or not, additionally based upon my observations I had also added couple of checks which minimize the situations in which an incorrect implementation would get through.
  • Testing timers was a bit easy too, I passed a static var to the timed process, and verified whether the callback function works fine by checking the value of that variable.
  • In the meantime, I did some work on improving the code as suggested by eugene and jordi, there are no printfs anymore in the code. I have also added the code so that data gets written to the log whenever we want, If there is no logfile, outputs are put on stdout.
  • One more thing I added was, that the engine putting up a list of testsuites to execute, this is now handled in a better manner than previous.
  • Finally I moved on to events, Mouse events were easy to implement, but I was almost stuck with the RTL event (ctrl+f5) for almost a day or two, what happened was whenever I press (ctrl+f5), the code crashed with message “could not load widget GlobalMenu.help”.I thought I found a bug :), but after hours of debugging and examination of the code in GUI and themes, I finally figured out that the newer scummvm binary requires an updated theme_layout.stx, while it was using the previous one from “/usr/share/scummvm” and hence the problem, When I changed my theme path to “scummvm/gui/themes”, all worked fine :-). Finally I did “make install” to update the copy in “/usr/share/scummvm/”.
  • For keyboard events, what I tried to do was, make user type some word input, we would display the word on screen, and make the user verify them. I have committed some code on it yesterday but needs some more rework.
  • Fianlly the events RTL and QUIT would be handled, they will enable the testbed to exit even if all tests are not complete.

So that was all from the week, This week I have planned to :

  1. Done with all the event stuff (Sunday).
  2. Refactoring as suggested by Eugene (Monday-Saturday)
    — Rainbow palettes (Monday)
    — Possibility to go forth and back in tests/ skip some tests. (Tuesday-Wednesday)
    — Show test number and progress bar (Thursday – Friday)
    — Improve the scaling test and detections (Saturday)

The only tests that remain now are of audio/audio cd/ Midi subsystems. Once the refactoring stuff is done, I shall be ready to step into those. Additionally If the mentors have any input or feature (they might want to see), please drop me a mail and I would be glad to include that in.

Cheers,