Changeset: 65c0d5c4a523 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=65c0d5c4a523 Modified Files: clients/ruby/Tests/rubytest.rb clients/ruby/Tests/rubytest.stable.err clients/ruby/Tests/rubytest.stable.out testing/Mfilter.py Branch: default Log Message:
Removed minitest dependency for Ruby tests diffs (truncated from 335 to 300 lines): diff --git a/clients/ruby/Tests/rubytest.rb b/clients/ruby/Tests/rubytest.rb --- a/clients/ruby/Tests/rubytest.rb +++ b/clients/ruby/Tests/rubytest.rb @@ -1,91 +1,142 @@ -gem "minitest" -require 'minitest/autorun' require_relative '../lib/MonetDB' -describe MonetDB do - before do - portnumber = ARGV[0] || 50000 - dbname = ARGV[1] || "mTests_." +class MapiRubyInterfaceTestCase + def test1(query_results) + result = query_results.fetch_all_as_column_hash == {"id"=>[1, 2], "stringtest"=>["foo", "bar baz"], "integertest"=>[42, 43]} + return result, "fetch all result items in a hash" + end + + def test2(query_results) + result = query_results.fetch_hash == {"id"=>1, "stringtest"=>"foo", "integertest"=>42} + return result, "fetch a result record in a hash" + end + + def test3(query_results) + result_collection = [] + query_results.each_record_as_hash { |record| result_collection.push(record) } + result = result_collection == [{ "id" => 1, "stringtest" => "foo", "integertest" => 42 }, { "id" => 2, "stringtest" => "bar baz", "integertest" => 43 }] + + return result, "iterate through all records in hash" + end + + def test4(query_results) + result = query_results.fetch == [1, 42, "foo"] + return result, "fetch a result record" + end + + def test5(query_results) + result = query_results.fetch_all == [[1, 42, "foo"], [2, 43, "bar baz"]] + return result, "fetch all records" + end + + def test6(query_results) + result = query_results.fetch_all == [[1, 42, "foo"], [2, 43, "bar baz"]] + return result, "count the number of resulting rows from a query" + end + + def test7(query_results) + result = query_results.num_fields == 3 + return result, "count the number of resulting fields from a query" + end + + def test8(query_results) + result = query_results.name_fields == ["id", "integertest", "stringtest"] + return result, "get the name of fields from a query" + end + + def test9(query_results) + result = query_results.type_fields == {"id"=>"int", "stringtest"=>"clob", "integertest"=>"int"} + return result, "can get the type of fields from a query" + end + + def test10(query_results) + result = query_results.type_fields == {"id"=>"int", "stringtest"=>"clob", "integertest"=>"int"} + return result, "get the type of fields from a query" + end + + def test11(query_results) + result = query_results.fetch_by_column_name("id") == [1, 2] + return result, "get all values by column name" + end + + def test12(query_results) + result_collection = [] + query_results.each_record { |record| result_collection.push(record) } + result = result_collection == [[1, 42, "foo"], [2, 43, "bar baz"]] + + return result, "iterate through all records" + end +end + +class Tester + + def initialize(portnumber, dbname, testcase) + @testcase = testcase + @error_messages = [] @database_connection = MonetDB.new @database_connection.connect(user = "monetdb", passwd = "monetdb", lang = "sql", host="127.0.0.1", port = portnumber, database_connection_name = dbname, auth_type = "SHA1") + end + def start + print_initialize + run_tests + print_results + end + + # ==================== + private + # ==================== + + def run_tests + @testcase.public_methods(false).each { |test| run_test(test) } + end + + def run_test(test) + create_database + query_results = run_query + result, message = @testcase.send(test, query_results) + add_error(result, message) + remove_database + end + + def run_query + return @database_connection.query("SELECT * FROM testtable t"); + end + + def create_database @database_connection.query("CREATE TABLE testtable (id INTEGER, integertest INTEGER, stringtest CHARACTER LARGE OBJECT)") @database_connection.query("INSERT INTO testtable (id, integertest, stringtest) VALUES (1, 42, 'foo')"); @database_connection.query("INSERT INTO testtable (id, integertest, stringtest) VALUES (2, 43, 'bar baz')"); - - @query_result = @database_connection.query("SELECT * FROM testtable t"); end - after do + def remove_database @database_connection.query("DROP TABLE testtable"); end - describe "Monet DB interface" do - it " can fetch all result items from a query in a hash" do - @query_result.fetch_all_as_column_hash.must_equal({"id"=>[1, 2], "stringtest"=>["foo", "bar baz"], "integertest"=>[42, 43]}) - end + def add_error(result, message="") + @error_messages.push(message) unless result + end - it " can fetch a record from a query in a hash" do - @query_result.fetch_hash.must_equal({"id"=>1, "stringtest"=>"foo", "integertest"=>42}) - end + def print_initialize + puts "" + puts "# Running tests" + puts "" + end - it " can iterate through all records in hash" do - result_collection = [] - @query_result.each_record_as_hash { |record| result_collection.push(record) } - result_collection.must_equal([{ "id" => 1, "stringtest" => "foo", "integertest" => 42 }, { "id" => 2, "stringtest" => "bar baz", "integertest" => 43 }]) - end + def print_results + puts "Tests Failed: #{@error_messages.size}" + puts "" - it " can fetch a result record" do - @query_result.fetch.must_equal([1, 42, "foo"]) - end - - it " can fetch all records" do - @query_result.fetch_all.must_equal([[1, 42, "foo"], [2, 43, "bar baz"]]) - end - - it " can count the number of resulting rows from a query" do - @query_result.num_rows.must_equal(2) - end - - it " can count the number of resulting fields from a query" do - @query_result.num_fields.must_equal(3) - end - - it " can get the name of fields from a query" do - @query_result.name_fields.must_equal(["id", "integertest", "stringtest"]) - end - - it " can get the type of fields from a query" do - @query_result.type_fields.must_equal({"id"=>"int", "stringtest"=>"clob", "integertest"=>"int"}) - end - - it " can get all values by column name" do - @query_result.fetch_by_column_name("id").must_equal([1, 2]) - end - - it " can iterate through all records" do - result_collection = [] - @query_result.each_record { |record| result_collection.push(record) } - result_collection.must_equal([[1, 42, "foo"], [2, 43, "bar baz"]]) + if( @error_messages.any? ) + puts "Errors:" + @error_messages.each_with_index { |error_message, index| puts "#{index + 1}: #{error_message}" } end end end -# Overwrite some methods in minitest to prevent tests from failing over difference in time and seed reports -module Minitest - class SummaryReporter - def start - super +portnumber = ARGV[0] || 50000 +dbname = ARGV[1] || "mTests_." - io.puts "# Running:" - - self.sync = io.respond_to? :"sync=" # stupid emacs - self.old_sync, io.sync = io.sync, true if self.sync - end - - def statistics - # do nothing to prevent tests from failing over difference in time reports - end - end -end +tester = Tester.new(portnumber, dbname, MapiRubyInterfaceTestCase.new) +tester.start diff --git a/clients/ruby/Tests/rubytest.stable.err b/clients/ruby/Tests/rubytest.stable.err --- a/clients/ruby/Tests/rubytest.stable.err +++ b/clients/ruby/Tests/rubytest.stable.err @@ -1,9 +1,9 @@ stderr of test 'rubytest` in directory 'clients/ruby` itself: -# 11:46:08 > -# 11:46:08 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=33382" "--set" "mapi_usock=/var/tmp/mtest-44013/.s.monetdb.33382" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/Users/rkoopmanschap/projects/MonetDB-installation/var/MonetDB/mTests_clients_ruby" "--set" "mal_listing=0" "--set" "embedded_r=yes" -# 11:46:08 > +# 11:01:32 > +# 11:01:32 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=31445" "--set" "mapi_usock=/var/tmp/mtest-29264/.s.monetdb.31445" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/Users/rkoopmanschap/projects/MonetDB-installation/var/MonetDB/mTests_." "--set" "mal_listing=0" "--set" "embedded_r=yes" +# 11:01:32 > # builtin opt gdk_dbpath = /Users/rkoopmanschap/projects/MonetDB-installation/var/monetdb5/dbfarm/demo # builtin opt gdk_debug = 0 @@ -17,21 +17,21 @@ stderr of test 'rubytest` in directory ' # builtin opt sql_debug = 0 # cmdline opt gdk_nr_threads = 0 # cmdline opt mapi_open = true -# cmdline opt mapi_port = 33382 -# cmdline opt mapi_usock = /var/tmp/mtest-44013/.s.monetdb.33382 +# cmdline opt mapi_port = 31445 +# cmdline opt mapi_usock = /var/tmp/mtest-29264/.s.monetdb.31445 # cmdline opt monet_prompt = # cmdline opt mal_listing = 2 -# cmdline opt gdk_dbpath = /Users/rkoopmanschap/projects/MonetDB-installation/var/MonetDB/mTests_clients_ruby +# cmdline opt gdk_dbpath = /Users/rkoopmanschap/projects/MonetDB-installation/var/MonetDB/mTests_. # cmdline opt mal_listing = 0 # cmdline opt embedded_r = yes # cmdline opt gdk_debug = 536870922 -# 11:46:09 > -# 11:46:09 > "ruby" "rubytest.rb" "33382" "mTests_clients_ruby" -# 11:46:09 > +# 11:01:32 > +# 11:01:32 > "ruby" "rubytest.rb" "31445" "mTests_." +# 11:01:32 > -# 11:46:09 > -# 11:46:09 > "Done." -# 11:46:09 > +# 11:01:33 > +# 11:01:33 > "Done." +# 11:01:33 > diff --git a/clients/ruby/Tests/rubytest.stable.out b/clients/ruby/Tests/rubytest.stable.out --- a/clients/ruby/Tests/rubytest.stable.out +++ b/clients/ruby/Tests/rubytest.stable.out @@ -1,20 +1,20 @@ stdout of test 'rubytest` in directory 'clients/ruby` itself: -# 11:46:08 > -# 11:46:08 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=33382" "--set" "mapi_usock=/var/tmp/mtest-44013/.s.monetdb.33382" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/Users/rkoopmanschap/projects/MonetDB-installation/var/MonetDB/mTests_clients_ruby" "--set" "mal_listing=0" "--set" "embedded_r=yes" -# 11:46:08 > +# 11:01:32 > +# 11:01:32 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=31445" "--set" "mapi_usock=/var/tmp/mtest-29264/.s.monetdb.31445" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/Users/rkoopmanschap/projects/MonetDB-installation/var/MonetDB/mTests_." "--set" "mal_listing=0" "--set" "embedded_r=yes" +# 11:01:32 > # MonetDB 5 server v11.22.0 # This is an unreleased version -# Serving database 'mTests_clients_ruby', using 4 threads +# Serving database 'mTests_.', using 4 threads # Compiled for x86_64-apple-darwin14.5.0/64bit with 64bit OIDs and 128bit integers dynamically linked # Found 16.000 GiB available main-memory. # Copyright (c) 1993-July 2008 CWI. # Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved # Visit http://www.monetdb.org/ for further information -# Listening for connection requests on mapi:monetdb://gup-129-196.cwi.nl:33382/ -# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-44013/.s.monetdb.33382 +# Listening for connection requests on mapi:monetdb://gup-129-196.cwi.nl:31445/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-29264/.s.monetdb.31445 # MonetDB/GIS module loaded # Start processing logs sql/sql_logs version 52200 # Finished processing logs sql/sql_logs @@ -58,21 +58,17 @@ Ready. # loading sql script: 90_generator_hge.sql # loading sql script: 99_system.sql -# 11:46:09 > -# 11:46:09 > "ruby" "rubytest.rb" "33382" "mTests_clients_ruby" -# 11:46:09 > +# 11:01:32 > _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list