From: <ky...@us...> - 2007-01-17 08:20:01
|
Revision: 104 http://svn.sourceforge.net/crackerjack/?rev=104&view=rev Author: kyagi Date: 2007-01-17 00:19:58 -0800 (Wed, 17 Jan 2007) Log Message: ----------- rejuvenation of framework script files Added Paths: ----------- trunk/crackerjack/crackerjack trunk/crackerjack/lib/CjkProgram.rb trunk/crackerjack/lib/CompareProgram.rb trunk/crackerjack/lib/Errmsg.rb trunk/crackerjack/lib/Framework.rb trunk/crackerjack/lib/FrameworkOption.rb trunk/crackerjack/lib/Program.rb trunk/crackerjack/lib/TestProgram.rb trunk/crackerjack/lib/functions.rb Removed Paths: ------------- trunk/crackerjack/bin/CompareProgram.rb trunk/crackerjack/bin/InvokeOption.rb trunk/crackerjack/bin/Program.rb trunk/crackerjack/bin/TestProgram.rb trunk/crackerjack/bin/crackerjack trunk/crackerjack/bin/functions.rb trunk/crackerjack/include/ Deleted: trunk/crackerjack/bin/CompareProgram.rb =================================================================== --- trunk/crackerjack/bin/CompareProgram.rb 2007-01-16 13:09:31 UTC (rev 103) +++ trunk/crackerjack/bin/CompareProgram.rb 2007-01-17 08:19:58 UTC (rev 104) @@ -1,15 +0,0 @@ -#!/usr/bin/env ruby - -class CompareProgram < Program - attr_accessor:log_stdout - attr_accessor:log_stderr - attr_accessor:log_status - - def initialize(filename, *arguments) - super - @log_stdout = "cout.log" - @log_stderr = "cerr.log" - @log_stdout = "cstatus" - end - -end Deleted: trunk/crackerjack/bin/InvokeOption.rb =================================================================== --- trunk/crackerjack/bin/InvokeOption.rb 2007-01-16 13:09:31 UTC (rev 103) +++ trunk/crackerjack/bin/InvokeOption.rb 2007-01-17 08:19:58 UTC (rev 104) @@ -1,30 +0,0 @@ -#!/usr/bin/env ruby - -require 'optparse' -require 'ostruct' - -class InvokeOption - def self.parse(args) - version = "Crackerjack 0.1.1 (2007/01/15)" - options = OpenStruct.new - opts = OptionParser.new do |opts| - - opts.on("-f STR", "--file STR", String) do |val| - puts val - options.config = val - end - - opts.on("-b STR", "--btrax STR", String) do |val| - options.btrax = val - end - - opts.on("-v", "--version", String) do |val| - puts version - exit 0 - end - - end - opts.parse!(args) - options - end # self.parse(args) -end # class Deleted: trunk/crackerjack/bin/Program.rb =================================================================== --- trunk/crackerjack/bin/Program.rb 2007-01-16 13:09:31 UTC (rev 103) +++ trunk/crackerjack/bin/Program.rb 2007-01-17 08:19:58 UTC (rev 104) @@ -1,19 +0,0 @@ -#!/usr/bin/env ruby - -class Program - attr_accessor:rootdir - attr_accessor:filename - attr_accessor:arguments - attr_accessor:commandline - - def initialize(filename, *arguments) - @rootdir = Dir.pwd - @filename = filename - @arguments = arguments.join(" ") - @commandline = [filename, arguments].flatten.join(" ") - end - - def execute - system(commandline) - end -end Deleted: trunk/crackerjack/bin/TestProgram.rb =================================================================== --- trunk/crackerjack/bin/TestProgram.rb 2007-01-16 13:09:31 UTC (rev 103) +++ trunk/crackerjack/bin/TestProgram.rb 2007-01-17 08:19:58 UTC (rev 104) @@ -1,49 +0,0 @@ -#!/usr/bin/env ruby - -require 'fileutils' - -class TestProgram < Program - attr_accessor:kv_now - attr_accessor:kv_expected - attr_accessor:log_stdout - attr_accessor:log_stderr - attr_accessor:log_status - attr_accessor:cp - - def initialize(filename, *arguments) - super - @kv_now = `uname -r`.chomp! - @log_stdout = "tout.log" - @log_stderr = "terr.log" - @log_stdout = "tstatus" - end - - def setCompareProgram(filename, *arguments) - cp_filename = filename.sub('test','compare') - - if ! File.exists?(cp_filename) then - # If there is no compare program, using default shell-script - cp_filename = [@rootdir, "bin", "default-compare"].join('/') - end - - @cp = CompareProgram.new(cp_filename, *arguments) - end - - def execute - log = open(@log_stdout, "w") - log.sync=true - io = IO.popen(@commandline) - while text = io.gets do - log.puts(text) - end - end - - def makeResultDir - str1 = Time.now.strftime("%Y%m%d%H%M%S") - str2 = File.basename(File.dirname(@filename)) - path = [ @rootdir, "results", @kv_now, str1, str2].join("/") - FileUtils.mkdir_p(path) - end - -end - Deleted: trunk/crackerjack/bin/crackerjack =================================================================== --- trunk/crackerjack/bin/crackerjack 2007-01-16 13:09:31 UTC (rev 103) +++ trunk/crackerjack/bin/crackerjack 2007-01-17 08:19:58 UTC (rev 104) @@ -1,45 +0,0 @@ -#!/usr/bin/env ruby - -###################################################################### -# require -###################################################################### -require 'InvokeOption' -require 'Program' -require 'CompareProgram' -require 'TestProgram' -require 'functions' -require 'pp' - -###################################################################### -# main -###################################################################### -Dir.chdir("..") - -begin - options = InvokeOption.parse(ARGV) - - #if (! options.config) then - #tp_list = Crakerjack.getTestProgramListByFile() - #else - tp_list = Crackerjack.getTestProgramList() - #end - - #debug.s - tp_list.each do |tp| - print "tp = ", tp.filename, "\n" - print "cp = ", tp.cp.filename, "\n" - print "rootdir = ", tp.rootdir, "\n" - print "kv = ", tp.kv_now, "\n" - end - #debug.e - - #orderlist = get_orderlist(tplist) - #exe_orderlist(orderlist, tplist) - - #if options.btrax then - # exe_btrax() - #end - - #order = get_pre_kernel_version(tplist) - #exe_compare(order, tplist) -end Deleted: trunk/crackerjack/bin/functions.rb =================================================================== --- trunk/crackerjack/bin/functions.rb 2007-01-16 13:09:31 UTC (rev 103) +++ trunk/crackerjack/bin/functions.rb 2007-01-17 08:19:58 UTC (rev 104) @@ -1,136 +0,0 @@ -#!/usr/bin/env ruby - -require 'find' - -class Crackerjack - attr_accessor:version - - def self.getTestProgramList() - tp_list = Array.new() - Find.find(Dir.pwd) do |f| - # Serach test program by name 'test' - if File.basename(f) == "test" then - - # Create TestProgram instances and make list them - tp = TestProgram.new(f) - tp.setCompareProgram(f) - tp_list.push(tp) - end - end - tp_list - end - - def self.getTestProgramListByFile() - tplist = Array.new() - file = File.open(path) - begin - while line = file.gets do - if File.exists?(line) then - tplist.push(line) - end - end - ensure - file.close - end - return tplist - - - end - -end - -def get_order() - puts "Now, There are tests as follows." - puts "Please Choose test you want to execute." -end - - -def get_pre_kernel_version(tplist) - print "Which kernel version log do you want to compare?" - d = Dir.open(Dir.pwd+"/results") - kernel_version_list = Array.new() - d.each do |e| - kernel_version_list.push(e) - end - - kernel_version_list.each_with_index do |kv, idx| - print idx, ")", kv.sub(Dir.pwd, ''), "\n"; - end - - order = readline.chomp! - - tplist.each do |x| - #FIXME: - x.pre_kernel_version = "2.6.15" - #FIXME: - x.pre_result = "/home/kyagi/proj/rgt/svn/crackerjack/trunk/crackerjack/bin/a" - end - - return order - -end - -def exe_compare(order, tplist) - tplist.each_with_index do |tp, idx| - tp.execute_cp - end -end - -def get_orderlist(tplist) - puts "You can choose test program(s) as follows." - puts "Please select the number of test program(s) which you want to execute," - puts "and finish to select by typing 'q'" - - tplist.each_with_index do |tp, idx| - # FIXME: Dir.pwd - print idx, ")", tp.tppath.sub(Dir.pwd, ''), "\n"; - end - - orderlist = Array.new() - loop do - # FIXME: use catch/throw? - print "\nnumber or 'q' >" - answer = readline.chomp! - if (answer == 'q') then - break - end - - orderlist.push(answer) - - print "Now you selected test program(s) as follows." - orderlist.each do |elem| - print elem, " " - end - - end - return orderlist -end - -def exe_orderlist(orderlist, tplist) - orderlist.each do |num| - tplist.each_with_index do |tp, idx| - if (idx == num.to_i) - tp.mkresultdir - tp.execute_tp - tp.execute_tp_withlog - sleep 1 - end - end - end -end - -def read_config_file(path) - tplist = Array.new() - file = File.open(path) - begin - while line = file.gets do - if File.exists?(line) then - tplist.push(line) - end - end - ensure - file.close - end - return tplist -end - Added: trunk/crackerjack/crackerjack =================================================================== --- trunk/crackerjack/crackerjack (rev 0) +++ trunk/crackerjack/crackerjack 2007-01-17 08:19:58 UTC (rev 104) @@ -0,0 +1,43 @@ +#!/usr/bin/ruby -I./lib + +###################################################################### +# require & include +###################################################################### + +require 'FrameworkOption' +require 'Framework' +require 'Program' +require 'CjkProgram' +require 'TestProgram' +require 'CompareProgram' +require 'functions' +require 'pp' + +###################################################################### +# main +###################################################################### + +begin + options = FrameworkOption.parse(ARGV) + + if (options.config) then + config = options.config + tp_list = Framework.get_testprogram_list_by_file(config) + else + tp_list = Framework.get_testprogram_list() + config = Framework.create_config_interactively(tp_list) + tp_list = Framework.get_testprogram_list_by_file(config) + end + + Framework.exe_testprogram_list(tp_list) + + #orderlist = get_orderlist(tplist) + #exe_orderlist(orderlist, tplist) + + #if options.btrax then + # exe_btrax() + #end + + #order = get_pre_kernel_version(tplist) + #exe_compare(order, tplist) +end Property changes on: trunk/crackerjack/crackerjack ___________________________________________________________________ Name: svn:executable + * Added: trunk/crackerjack/lib/CjkProgram.rb =================================================================== --- trunk/crackerjack/lib/CjkProgram.rb (rev 0) +++ trunk/crackerjack/lib/CjkProgram.rb 2007-01-17 08:19:58 UTC (rev 104) @@ -0,0 +1,9 @@ +#!/usr/bin/env ruby + +class CjkProgram < Program + attr_accessor:kv_now + attr_accessor:kv_expected + attr_accessor:log_stdout + attr_accessor:log_stderr + attr_accessor:log_status +end Added: trunk/crackerjack/lib/CompareProgram.rb =================================================================== --- trunk/crackerjack/lib/CompareProgram.rb (rev 0) +++ trunk/crackerjack/lib/CompareProgram.rb 2007-01-17 08:19:58 UTC (rev 104) @@ -0,0 +1,23 @@ +#!/usr/bin/env ruby + +class CompareProgram < CjkProgram + + def initialize(filename, *arguments) + super + @log_stdout = "cout.log" + @log_stderr = "cerr.log" + @log_stdout = "cstatus" + end + + def setCompareProgram(filename, *arguments) + cp_filename = filename.sub('test','compare') + + if ! File.exists?(cp_filename) then + # If there is no compare program, using default shell-script + cp_filename = [@rootdir, "bin", "default-compare"].join('/') + end + + @cp = CompareProgram.new(cp_filename, *arguments) + end + +end Added: trunk/crackerjack/lib/Errmsg.rb =================================================================== --- trunk/crackerjack/lib/Errmsg.rb (rev 0) +++ trunk/crackerjack/lib/Errmsg.rb 2007-01-17 08:19:58 UTC (rev 104) @@ -0,0 +1,8 @@ +#!/usr/bin/env ruby + +module Errmsg + def errmsg(err) + STDERR.puts "ERROR: " + err.message + end + module_function:errmsg +end Added: trunk/crackerjack/lib/Framework.rb =================================================================== --- trunk/crackerjack/lib/Framework.rb (rev 0) +++ trunk/crackerjack/lib/Framework.rb 2007-01-17 08:19:58 UTC (rev 104) @@ -0,0 +1,136 @@ +#!/usr/bin/env ruby + +require 'find' +require 'Errmsg' + +include Errmsg +class Framework + + def self.get_testprogram_list() + tp_list = Array.new() + Find.find(Dir.pwd) do |f| + # Search testprogram by name 'test' and create TestProgram instance list + if File.basename(f) == "test" then + tp = TestProgram.new(f) + tp_list.push(tp) + end + end + tp_list + end + + def self.get_testprogram_list_by_file(path) + tp_list = Array.new() + begin + f = File.open(path, "r") + rescue Errno::ENOENT => err + errmsg err + exit 1 + end + + begin + while line = f.gets do + # convert relative path name to absolute path name + tp_path = File.expand_path(line.chomp!) + if File.exists?(tp_path) then + tp = TestProgram.new(tp_path) + tp_list.push(tp) + end + end + rescue Errno::ENOENT => err + errmsg err + ensure + f.close + end + + tp_list + end # def + + def self.create_config_interactively(tp_list) + puts "You can choose test program(s) as follows." + puts "Please select the number of test program(s) which you want to execute," + puts "and finish to select by typing 'q'" + + tp_list.each_with_index do |tp, idx| + # FIXME: Dir.pwd + print idx, ")", tp.filename.sub(Dir.pwd, ''), "\n"; + end + + order_list = Array.new() + loop do + # FIXME: use catch/throw? + print "\nnumber or 'q' >" + answer = readline.chomp! + if (answer == 'q') then + break + end + + order_list.push(answer) + + print "Now you selected test program(s) as follows." + order_list.each do |elem| + print elem, " " + end + end # loop + + path = Dir.pwd + "/.config" + f = File.open(path, "w") + f.sync=true + + order_list.each do |num| + tp_list.each_with_index do |tp, idx| + if (idx == num.to_i) + f.puts tp.filename + end + end + end + + path + end # def + + def self.exe_testprogram_list(tp_list) + tp_list.each do |tp| + print "tp = ", tp.filename, "\n" + print "rootdir = ", tp.rootdir, "\n" + print "kv = ", tp.kv_now, "\n" + tp.execute + end + end + +###################################################### + + + + + + def get_pre_kernel_version(tplist) + print "Which kernel version log do you want to compare?" + d = Dir.open(Dir.pwd+"/results") + kernel_version_list = Array.new() + d.each do |e| + kernel_version_list.push(e) + end + + kernel_version_list.each_with_index do |kv, idx| + print idx, ")", kv.sub(Dir.pwd, ''), "\n"; + end + + order = readline.chomp! + + tplist.each do |x| + #FIXME: + x.pre_kernel_version = "2.6.15" + #FIXME: + x.pre_result = "/home/kyagi/proj/rgt/svn/crackerjack/trunk/crackerjack/bin/a" + end + + return order + + end + + def exe_compare(order, tplist) + tplist.each_with_index do |tp, idx| + tp.execute_cp + end + end + +end # class Added: trunk/crackerjack/lib/FrameworkOption.rb =================================================================== --- trunk/crackerjack/lib/FrameworkOption.rb (rev 0) +++ trunk/crackerjack/lib/FrameworkOption.rb 2007-01-17 08:19:58 UTC (rev 104) @@ -0,0 +1,29 @@ +#!/usr/bin/env ruby + +require 'optparse' +require 'ostruct' + +class FrameworkOption + Version = "Crackerjack 0.1.1 (2007/01/15)" + def self.parse(args) + options = OpenStruct.new + opts = OptionParser.new do |opts| + + opts.on("-f STR", "--file STR", String) do |val| + options.config = val + end + + opts.on("-b STR", "--btrax STR", String) do |val| + options.btrax = val + end + + opts.on("-v", "--version", String) do |val| + puts Version + exit 0 + end + + end + opts.parse!(args) + options + end # self.parse(args) +end # class Property changes on: trunk/crackerjack/lib/FrameworkOption.rb ___________________________________________________________________ Name: svn:executable + * Added: trunk/crackerjack/lib/Program.rb =================================================================== --- trunk/crackerjack/lib/Program.rb (rev 0) +++ trunk/crackerjack/lib/Program.rb 2007-01-17 08:19:58 UTC (rev 104) @@ -0,0 +1,19 @@ +#!/usr/bin/env ruby + +class Program + attr_accessor:rootdir + attr_accessor:filename + attr_accessor:arguments + attr_accessor:commandline + + def initialize(filename, *arguments) + @rootdir = Dir.pwd + @filename = filename + @arguments = arguments.join(" ") + @commandline = [filename, arguments].flatten.join(" ") + end + + def execute + system(commandline) + end +end Added: trunk/crackerjack/lib/TestProgram.rb =================================================================== --- trunk/crackerjack/lib/TestProgram.rb (rev 0) +++ trunk/crackerjack/lib/TestProgram.rb 2007-01-17 08:19:58 UTC (rev 104) @@ -0,0 +1,47 @@ +#!/usr/bin/env ruby + +require 'fileutils' +require 'open3' + +class TestProgram < CjkProgram + + def initialize(filename, *arguments) + super + @kv_now = `uname -r`.chomp! + @log_stdout = "tout.log" + @log_stderr = "terr.log" + @log_status = "tstatus" + end + +# def execute +# log = open(@log_stdout, "w") +# log.sync=true +# io = IO.popen(@commandline) +# while text = io.gets do +# log.puts(text) +# end +# end + + + # FIXME: Open3 class cannot get exit_status + def execute + Open3.popen3(commandline) do |stdin, stdout, stderr| + stdin.close + File.open(@log_stdout, "w") do |f| + f.puts stdout.read + end + File.open(@log_stderr, "w") do |f| + f.puts stderr.read + end + end + end + + def make_result_dir + str1 = Time.now.strftime("%Y%m%d%H%M%S") + str2 = File.basename(File.dirname(@filename)) + path = [ @rootdir, "results", @kv_now, str1, str2].join("/") + FileUtils.mkdir_p(path) + end + +end + Added: trunk/crackerjack/lib/functions.rb =================================================================== --- trunk/crackerjack/lib/functions.rb (rev 0) +++ trunk/crackerjack/lib/functions.rb 2007-01-17 08:19:58 UTC (rev 104) @@ -0,0 +1,99 @@ +#!/usr/bin/env ruby + +require 'find' + +def get_order() + puts "Now, There are tests as follows." + puts "Please Choose test you want to execute." +end + + +def get_pre_kernel_version(tplist) + print "Which kernel version log do you want to compare?" + d = Dir.open(Dir.pwd+"/results") + kernel_version_list = Array.new() + d.each do |e| + kernel_version_list.push(e) + end + + kernel_version_list.each_with_index do |kv, idx| + print idx, ")", kv.sub(Dir.pwd, ''), "\n"; + end + + order = readline.chomp! + + tplist.each do |x| + #FIXME: + x.pre_kernel_version = "2.6.15" + #FIXME: + x.pre_result = "/home/kyagi/proj/rgt/svn/crackerjack/trunk/crackerjack/bin/a" + end + + return order + +end + +def exe_compare(order, tplist) + tplist.each_with_index do |tp, idx| + tp.execute_cp + end +end + +def get_orderlist(tplist) + puts "You can choose test program(s) as follows." + puts "Please select the number of test program(s) which you want to execute," + puts "and finish to select by typing 'q'" + + tplist.each_with_index do |tp, idx| + # FIXME: Dir.pwd + print idx, ")", tp.tppath.sub(Dir.pwd, ''), "\n"; + end + + orderlist = Array.new() + loop do + # FIXME: use catch/throw? + print "\nnumber or 'q' >" + answer = readline.chomp! + if (answer == 'q') then + break + end + + orderlist.push(answer) + + print "Now you selected test program(s) as follows." + orderlist.each do |elem| + print elem, " " + end + + end + return orderlist +end + +def exe_orderlist(orderlist, tplist) + orderlist.each do |num| + tplist.each_with_index do |tp, idx| + if (idx == num.to_i) + tp.mkresultdir + tp.execute_tp + tp.execute_tp_withlog + sleep 1 + end + end + end +end + +def read_config_file(path) + tplist = Array.new() + file = File.open(path) + begin + while line = file.gets do + if File.exists?(line) then + tplist.push(line) + end + end + ensure + file.close + end + return tplist +end + Property changes on: trunk/crackerjack/lib/functions.rb ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |