Update of /cvsroot/fxruby/FXRuby/tests
In directory usw-pr-cvs1:/tmp/cvs-serv4427
Added Files:
Tag: release10
stress1.rb
Log Message:
Added Gilles' case as a permanent "stress test" for FXRuby.
--- NEW FILE: stress1.rb ---
#
# An FXRuby stress test developed by Gilles Filippini
#
require "fox"
include Fox
# Test case tuning
NUMBER_OF_ITEMS = 1000
RESTART_FRAQUENCY = 20
# =======================================================================
# Tree
# =======================================================================
class DirTree < FXTreeList
def initialize(parent, nvis, tgt = nil, sel = 0, opts = 0, x = 0, y = 0, w = 0, h = 0)
super
end
def create
super
item = addItemLast(nil, "root")
@currentItem = item
expand
end
def expand
expandTree(@currentItem, true)
listSubDir(@currentItem)
end
# Updating entries of dir
def listSubDir(parentItem)
entries = (1..NUMBER_OF_ITEMS).collect { |i| i.to_s }
entries.each do |entry|
item = addItemLast(parentItem, entry)
@currentItem = item if entry == "1"
end
end
end
# =======================================================================
# Application
# =======================================================================
class Application < FXApp
include Responder
ID_TIMER, ID_LAST = enum(FXApp::ID_LAST, 2)
def initialize
super("FXTreeList Bug (the come back)", "Pini")
FXMAPFUNC(SEL_TIMEOUT, ID_TIMER, "onCount")
disableThreads
init(ARGV)
win = FXMainWindow.new(self, appName, nil, nil, DECOR_ALL, 0, 0, 400, 600)
@dirTree = DirTree.new(win, 0, nil, 0,
(TREELIST_SHOWS_LINES|TREELIST_SHOWS_BOXES|TREELIST_ROOT_BOXES|
LAYOUT_FILL_X|LAYOUT_FILL_Y))
@count = 0
end
def create
super
mainWindow.show(PLACEMENT_SCREEN)
addTimeout(100, self, ID_TIMER)
end
def onCount(sender, sel, ptr)
@count += 1
puts "count = #{@count}"
if @count % RESTART_FRAQUENCY == 0
@dirTree.clearItems
@dirTree.create
end
@dirTree.expand
addTimeout(100, self, ID_TIMER)
end
end
if __FILE__ == $0
# Make application
application = Application.new
# Create app
application.create()
# Run
application.run()
end
|