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

Reply via email to