[sugar] Simulator

Marco Pesenti Gritti mpg
Tue Sep 26 08:31:13 EDT 2006


Hi,

I've been thinking a bit about the simulator. Here is my current 
thinking, thoughts are welcome.

Use cases:

1 Development aid. Recreating manually certain situation during 
development takes time. Example: create an activity with a few buddies 
in it to test the buddy list.
2 Stress testing. Being able to simulate the deployment networks with a 
bunch of buddies and shared activities would help us finding bugs and 
performance issues. A lot depends on the fidelity of the simulation but 
even a reduced model would still be useful.
3 UI testing. The typical example is the mesh view. It's hard to figure 
out how well it scales (and how to improve it) without having a 
realistic number of buddies/activities on it.
4 Demos. Sugar has been designed for the mesh, running it on a single 
machine can't give the idea of the actual user experience. Especially 
with live cd's, it would be cool to keep a simulator running in the 
background, to show off the features.

Test deployments could probably be a substitute for 3, maybe 2 wouldn't 
be that necessary if we had good unit tests. For 1 and 4 simulation is 
the only solution that comes to my mind.

Requirements:

A It should be easy to write simple bots. That way we can build complex 
simulations easily.
B It should be possible to have multiple  bots per process (starting 3 
processes for every buddy is not an option).

A and B are important especially for 3 and 4.

About A I'm considering a programmatic approach, something like:

kiu = Bot('kiu')

kiu.color = ....
kiu.icon = ....

chat = kiu.share_chat_activity('Chat title')
web = kiu.share_web_activity('OLPC', 'http://dev.laptop.org')
kiu.wait(20)

web.goto_page('http://www.gnome.org')
kiu.wait(80)

kiu.set_current_activity(chat)
kiu.wait(30)

kiu.join_random_activity()

kiu.start()

The various action would be queued up and executed on start.

About B. To be able to register multiple buddies (and their services) in 
the same process we would need an owner-less presence service. Dan, do 
you think supporting such use case is reasonable?

Marco


More information about the Sugar-devel mailing list