tiny_tds 2.1.5-x86-mingw32 → 2.1.6-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +407 -0
  3. data/.gitignore +2 -0
  4. data/CHANGELOG.md +7 -1
  5. data/Gemfile +0 -7
  6. data/README.md +2 -4
  7. data/Rakefile +19 -10
  8. data/VERSION +1 -1
  9. data/docker-compose.yml +19 -7
  10. data/ext/tiny_tds/client.c +2 -0
  11. data/ext/tiny_tds/extconf.rb +21 -2
  12. data/ext/tiny_tds/extconsts.rb +1 -1
  13. data/ext/tiny_tds/result.c +1 -0
  14. data/lib/tiny_tds/2.4/tiny_tds.so +0 -0
  15. data/lib/tiny_tds/2.5/tiny_tds.so +0 -0
  16. data/lib/tiny_tds/2.6/tiny_tds.so +0 -0
  17. data/lib/tiny_tds/2.7/tiny_tds.so +0 -0
  18. data/lib/tiny_tds/3.0/tiny_tds.so +0 -0
  19. data/lib/tiny_tds/gem.rb +1 -6
  20. data/ports/x86-mingw32/freetds/1.1.24/bin/bsqldb.exe +0 -0
  21. data/ports/x86-mingw32/freetds/1.1.24/bin/datacopy.exe +0 -0
  22. data/ports/x86-mingw32/freetds/1.1.24/bin/defncopy.exe +0 -0
  23. data/ports/x86-mingw32/freetds/1.1.24/bin/freebcp.exe +0 -0
  24. data/ports/x86-mingw32/freetds/1.1.24/bin/libct-4.dll +0 -0
  25. data/ports/x86-mingw32/freetds/1.1.24/bin/libsybdb-5.dll +0 -0
  26. data/ports/x86-mingw32/freetds/1.1.24/bin/tdspool.exe +0 -0
  27. data/ports/x86-mingw32/freetds/1.1.24/bin/tsql.exe +0 -0
  28. data/ports/{i686-w64-mingw32 → x86-mingw32}/freetds/1.1.24/lib/libct.dll.a +0 -0
  29. data/ports/{i686-w64-mingw32 → x86-mingw32}/freetds/1.1.24/lib/libct.la +2 -2
  30. data/ports/{i686-w64-mingw32 → x86-mingw32}/freetds/1.1.24/lib/libsybdb.dll.a +0 -0
  31. data/ports/{i686-w64-mingw32 → x86-mingw32}/freetds/1.1.24/lib/libsybdb.la +2 -2
  32. data/ports/x86-mingw32/libiconv/1.15/bin/iconv.exe +0 -0
  33. data/ports/x86-mingw32/libiconv/1.15/bin/libcharset-1.dll +0 -0
  34. data/ports/{i686-w64-mingw32 → x86-mingw32}/libiconv/1.15/bin/libiconv-2.dll +0 -0
  35. data/ports/{i686-w64-mingw32 → x86-mingw32}/libiconv/1.15/lib/libcharset.dll.a +0 -0
  36. data/ports/{i686-w64-mingw32 → x86-mingw32}/libiconv/1.15/lib/libcharset.la +2 -2
  37. data/ports/{i686-w64-mingw32 → x86-mingw32}/libiconv/1.15/lib/libiconv.dll.a +0 -0
  38. data/ports/{i686-w64-mingw32 → x86-mingw32}/libiconv/1.15/lib/libiconv.la +2 -2
  39. data/ports/x86-mingw32/openssl/1.1.1s/bin/c_rehash +251 -0
  40. data/ports/x86-mingw32/openssl/1.1.1s/bin/libcrypto-1_1.dll +0 -0
  41. data/ports/x86-mingw32/openssl/1.1.1s/bin/libssl-1_1.dll +0 -0
  42. data/ports/x86-mingw32/openssl/1.1.1s/bin/openssl.exe +0 -0
  43. data/ports/x86-mingw32/openssl/1.1.1s/lib/libcrypto.a +0 -0
  44. data/ports/{i686-w64-mingw32/openssl/1.1.1d → x86-mingw32/openssl/1.1.1s}/lib/libcrypto.dll.a +0 -0
  45. data/ports/x86-mingw32/openssl/1.1.1s/lib/libssl.a +0 -0
  46. data/ports/{i686-w64-mingw32/openssl/1.1.1d → x86-mingw32/openssl/1.1.1s}/lib/libssl.dll.a +0 -0
  47. data/setup_cimgruby_dev.sh +25 -0
  48. data/start_dev.sh +21 -0
  49. data/tasks/native_gem.rake +15 -6
  50. data/tasks/ports/libiconv.rb +0 -17
  51. data/tasks/ports/recipe.rb +16 -4
  52. data/tasks/ports.rake +58 -35
  53. data/test/bin/install-mssql.ps1 +31 -0
  54. data/test/bin/install-mssqltools.sh +9 -0
  55. data/test/bin/setup_tinytds_db.sh +7 -0
  56. data/test/bin/setup_volume_permissions.sh +10 -0
  57. data/test/client_test.rb +6 -6
  58. data/test/gem_test.rb +11 -13
  59. data/test/sql/db-create.sql +18 -0
  60. data/test/sql/db-login.sql +38 -0
  61. data/test/test_helper.rb +16 -7
  62. data/tiny_tds.gemspec +7 -6
  63. metadata +69 -50
  64. data/.travis.yml +0 -25
  65. data/appveyor.yml +0 -72
  66. data/ports/i686-w64-mingw32/freetds/1.1.24/bin/bsqldb.exe +0 -0
  67. data/ports/i686-w64-mingw32/freetds/1.1.24/bin/datacopy.exe +0 -0
  68. data/ports/i686-w64-mingw32/freetds/1.1.24/bin/defncopy.exe +0 -0
  69. data/ports/i686-w64-mingw32/freetds/1.1.24/bin/freebcp.exe +0 -0
  70. data/ports/i686-w64-mingw32/freetds/1.1.24/bin/libct-4.dll +0 -0
  71. data/ports/i686-w64-mingw32/freetds/1.1.24/bin/libsybdb-5.dll +0 -0
  72. data/ports/i686-w64-mingw32/freetds/1.1.24/bin/tdspool.exe +0 -0
  73. data/ports/i686-w64-mingw32/freetds/1.1.24/bin/tsql.exe +0 -0
  74. data/ports/i686-w64-mingw32/libiconv/1.15/bin/iconv.exe +0 -0
  75. data/ports/i686-w64-mingw32/libiconv/1.15/bin/libcharset-1.dll +0 -0
  76. data/ports/i686-w64-mingw32/openssl/1.1.1d/bin/c_rehash +0 -232
  77. data/ports/i686-w64-mingw32/openssl/1.1.1d/bin/libcrypto-1_1.dll +0 -0
  78. data/ports/i686-w64-mingw32/openssl/1.1.1d/bin/libssl-1_1.dll +0 -0
  79. data/ports/i686-w64-mingw32/openssl/1.1.1d/bin/openssl.exe +0 -0
  80. data/ports/i686-w64-mingw32/openssl/1.1.1d/lib/libcrypto.a +0 -0
  81. data/ports/i686-w64-mingw32/openssl/1.1.1d/lib/libssl.a +0 -0
  82. data/test/appveyor/dbsetup.ps1 +0 -27
  83. data/test/appveyor/dbsetup.sql +0 -9
  84. data/test/bin/setup.sh +0 -19
  85. /data/ports/{i686-w64-mingw32 → x86-mingw32}/freetds/1.1.24/bin/osql +0 -0
  86. /data/ports/{i686-w64-mingw32 → x86-mingw32}/libiconv/1.15/lib/charset.alias +0 -0
@@ -0,0 +1,31 @@
1
+ $ProgressPreference = 'SilentlyContinue'
2
+
3
+ if (-not(Test-path "C:\Downloads"))
4
+ {
5
+ mkdir "C:\Downloads"
6
+ }
7
+
8
+ $sqlInstallationFile = "C:\Downloads\sqlexpress.exe"
9
+ if (-not(Test-path $sqlInstallationFile -PathType leaf))
10
+ {
11
+ Write-Host "Downloading SQL Express ..."
12
+ Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/?linkid=829176" -OutFile "C:\Downloads\sqlexpress.exe"
13
+ }
14
+
15
+ Write-Host "Installing SQL Express ..."
16
+ Start-Process -Wait -FilePath "C:\Downloads\sqlexpress.exe" -ArgumentList /qs, /x:"C:\Downloads\setup"
17
+ C:\Downloads\setup\setup.exe /q /ACTION=Install /INSTANCENAME=SQLEXPRESS /FEATURES=SQLEngine /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\System' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS
18
+
19
+ Write-Host "Configuring SQL Express ..."
20
+ stop-service MSSQL`$SQLEXPRESS
21
+ set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.SQLEXPRESS\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value ''
22
+ set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.SQLEXPRESS\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpport -value 1433
23
+ set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql14.SQLEXPRESS\mssqlserver\' -name LoginMode -value 2
24
+
25
+ Write-Host "Starting SQL Express ..."
26
+ start-service MSSQL`$SQLEXPRESS
27
+
28
+ Write-Host "Configuring MSSQL for TinyTDS ..."
29
+ & sqlcmd -Q "CREATE DATABASE [tinytdstest];"
30
+ & sqlcmd -Q "CREATE LOGIN [tinytds] WITH PASSWORD = '', CHECK_POLICY = OFF, DEFAULT_DATABASE = [tinytdstest];"
31
+ & sqlcmd -Q "USE [tinytdstest]; CREATE USER [tinytds] FOR LOGIN [tinytds]; EXEC sp_addrolemember N'db_owner', N'tinytds';"
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -x
4
+ set -e
5
+
6
+ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
7
+ curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
8
+ sudo apt-get update
9
+ sudo ACCEPT_EULA=Y apt-get -y install mssql-tools unixodbc-dev
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -x
4
+ set -e
5
+
6
+ /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SA_PASSWORD -i ./test/sql/db-create.sql
7
+ /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SA_PASSWORD -i ./test/sql/db-login.sql
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -x
4
+
5
+ sudo groupadd -g 3434 circleci_tinytds
6
+ sudo usermod -a -G circleci_tinytds $USER
7
+ sudo useradd circleci_tinytds -u 3434 -g 3434
8
+ sudo usermod -a -G circleci_tinytds circleci_tinytds
9
+ sudo chgrp -R circleci_tinytds .
10
+ sudo chmod -R g+rwx .
data/test/client_test.rb CHANGED
@@ -16,6 +16,7 @@ class ClientTest < TinyTds::TestCase
16
16
  assert @client.close
17
17
  assert @client.closed?
18
18
  assert !@client.active?
19
+ assert @client.dead?
19
20
  action = lambda { @client.execute('SELECT 1 as [one]').each }
20
21
  assert_raise_tinytds_error(action) do |e|
21
22
  assert_match %r{closed connection}i, e.message, 'ignore if non-english test run'
@@ -133,9 +134,8 @@ class ClientTest < TinyTds::TestCase
133
134
  end
134
135
 
135
136
  it 'raises TinyTds exception with tcp socket network failure' do
136
- skip if ENV['CI'] && ENV['APPVEYOR_BUILD_FOLDER'] # only CI using docker
137
137
  begin
138
- client = new_connection timeout: 2, port: 1234
138
+ client = new_connection timeout: 2, port: 1234, host: ENV['TOXIPROXY_HOST']
139
139
  assert_client_works(client)
140
140
  action = lambda { client.execute("waitfor delay '00:00:05'").do }
141
141
 
@@ -155,9 +155,10 @@ class ClientTest < TinyTds::TestCase
155
155
  end
156
156
 
157
157
  it 'raises TinyTds exception with dead connection network failure' do
158
- skip if ENV['CI'] && ENV['APPVEYOR_BUILD_FOLDER'] # only CI using docker
158
+ skip if ruby_windows?
159
+
159
160
  begin
160
- client = new_connection timeout: 2, port: 1234
161
+ client = new_connection timeout: 2, port: 1234, host: ENV['TOXIPROXY_HOST']
161
162
  assert_client_works(client)
162
163
  action = lambda { client.execute("waitfor delay '00:00:05'").do }
163
164
 
@@ -177,11 +178,10 @@ class ClientTest < TinyTds::TestCase
177
178
  end
178
179
 
179
180
  it 'raises TinyTds exception with login timeout' do
180
- skip if ENV['CI'] && ENV['APPVEYOR_BUILD_FOLDER'] # only CI using docker
181
181
  begin
182
182
  action = lambda do
183
183
  Toxiproxy[:sqlserver_test].toxic(:timeout, timeout: 0).apply do
184
- new_connection login_timeout: 1, port: 1234
184
+ new_connection login_timeout: 1, port: 1234, host: ENV['TOXIPROXY_HOST']
185
185
  end
186
186
  end
187
187
  assert_raise_tinytds_error(action) do |e|
data/test/gem_test.rb CHANGED
@@ -9,11 +9,11 @@ class GemTest < MiniTest::Spec
9
9
 
10
10
  # We're going to muck with some system globals so lets make sure
11
11
  # they get set back later
12
- original_host = RbConfig::CONFIG['host']
12
+ original_platform = RbConfig::CONFIG['arch']
13
13
  original_pwd = Dir.pwd
14
14
 
15
15
  after do
16
- RbConfig::CONFIG['host'] = original_host
16
+ RbConfig::CONFIG['arch'] = original_platform
17
17
  Dir.chdir original_pwd
18
18
  end
19
19
 
@@ -61,7 +61,7 @@ class GemTest < MiniTest::Spec
61
61
  end
62
62
 
63
63
  before do
64
- RbConfig::CONFIG['host'] = 'fake-host-with-dirs'
64
+ RbConfig::CONFIG['arch'] = 'fake-host-with-dirs'
65
65
  fake_bin_paths.each do |path|
66
66
  FileUtils.mkdir_p(path)
67
67
  end
@@ -85,7 +85,7 @@ class GemTest < MiniTest::Spec
85
85
 
86
86
  describe 'when the ports directories are missing' do
87
87
  before do
88
- RbConfig::CONFIG['host'] = 'fake-host-without-dirs'
88
+ RbConfig::CONFIG['arch'] = 'fake-host-without-dirs'
89
89
  end
90
90
 
91
91
  it 'should return no directories' do
@@ -115,7 +115,7 @@ class GemTest < MiniTest::Spec
115
115
  end
116
116
 
117
117
  before do
118
- RbConfig::CONFIG['host'] = 'fake-host-with-dirs'
118
+ RbConfig::CONFIG['arch'] = 'fake-host-with-dirs'
119
119
  fake_lib_paths.each do |path|
120
120
  FileUtils.mkdir_p(path)
121
121
  end
@@ -139,7 +139,7 @@ class GemTest < MiniTest::Spec
139
139
 
140
140
  describe 'when the ports directories are missing' do
141
141
  before do
142
- RbConfig::CONFIG['host'] = 'fake-host-without-dirs'
142
+ RbConfig::CONFIG['arch'] = 'fake-host-without-dirs'
143
143
  end
144
144
 
145
145
 
@@ -156,16 +156,14 @@ class GemTest < MiniTest::Spec
156
156
 
157
157
  describe '#ports_host' do
158
158
  {
159
- 'i686-pc-linux-gnu' => 'i686-pc-linux-gnu',
160
- 'x86_64-pc-linux-gnu' => 'x86_64-pc-linux-gnu',
161
- 'i686-w64-mingw32' => 'i686-w64-mingw32',
162
- 'x86_64-w64-mingw32' => 'x86_64-w64-mingw32',
163
- # consolidate this host to our build w64-mingw32 arch
164
- 'i686-pc-mingw32' => 'i686-w64-mingw32'
159
+ 'x64-mingw-ucrt' => 'x64-mingw-ucrt',
160
+ 'x64-mingw32' => 'x64-mingw32',
161
+ 'x86-mingw32' => 'x86-mingw32',
162
+ 'x86_64-linux' => 'x86_64-linux',
165
163
  }.each do |host,expected|
166
164
  describe "on a #{host} architecture" do
167
165
  before do
168
- RbConfig::CONFIG['host'] = host
166
+ RbConfig::CONFIG['arch'] = host
169
167
  end
170
168
 
171
169
  it "should return a #{expected} ports host" do
@@ -0,0 +1,18 @@
1
+ :ON ERROR EXIT
2
+
3
+ PRINT 'RUNNING DB-CREATE.SQL, CREATING TINYTDS TEST DATABASE';
4
+ IF NOT EXISTS(SELECT * FROM sys.databases WHERE name = 'tinytdstest')
5
+ BEGIN
6
+ CREATE DATABASE [tinytdstest];
7
+ END
8
+ GO
9
+
10
+ IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name LIKE 'tinytdstest')
11
+ BEGIN
12
+ PRINT 'TINY TDS TEST DB SUCCESSFULY CREATED';
13
+ END
14
+ ELSE
15
+ BEGIN
16
+ THROW 51000, 'TINY TDS TEST DB CREATION FAILED', 1;
17
+ END
18
+ GO
@@ -0,0 +1,38 @@
1
+ :ON ERROR EXIT
2
+
3
+ PRINT 'RUNNING DB-LOGIN.SQL';
4
+
5
+ PRINT 'CREATING TINYTDS TEST LOGIN';
6
+ IF NOT EXISTS (select name from sys.server_principals where name like 'tinytds')
7
+ BEGIN
8
+ CREATE LOGIN [tinytds] WITH PASSWORD = '', CHECK_POLICY = OFF, DEFAULT_DATABASE = [tinytdstest];
9
+ END
10
+ GO
11
+
12
+ IF EXISTS (select name from sys.server_principals where name like 'tinytds')
13
+ BEGIN
14
+ PRINT 'TINY TDS TEST LOGIN SUCCESSFULY CREATED';
15
+ END
16
+ ELSE
17
+ BEGIN
18
+ THROW 51000, 'TINY TDS TEST LOGIN CREATION FAILED', 1;
19
+ END
20
+ GO
21
+
22
+ USE [tinytdstest];
23
+ IF NOT EXISTS (select name from sys.database_principals where name LIKE 'tinytds')
24
+ BEGIN
25
+ CREATE USER [tinytds] FOR LOGIN [tinytds];
26
+ EXEC sp_addrolemember N'db_owner', N'tinytds';
27
+ END
28
+ GO
29
+
30
+ IF EXISTS (select name from sys.database_principals where name LIKE 'tinytds')
31
+ BEGIN
32
+ PRINT 'TINY TDS TEST USER SUCCESSFULY CREATED';
33
+ END
34
+ ELSE
35
+ BEGIN
36
+ THROW 51000, 'TINY TDS TEST USER CREATION FAILED', 1;
37
+ END
38
+ GO
data/test/test_helper.rb CHANGED
@@ -248,22 +248,31 @@ module TinyTds
248
248
  end
249
249
 
250
250
  def init_toxiproxy
251
- return if ENV['APPVEYOR_BUILD_FOLDER'] # only for CI using docker
252
-
253
251
  # In order for toxiproxy to work for local docker instances of mssql, the containers must be on the same network
254
252
  # and the host used below must match the mssql container name so toxiproxy knows where to proxy to.
255
253
  # localhost from the perspective of toxiproxy's container is its own container an *not* the mssql container it needs to proxy to.
256
254
  # docker-compose.yml handles this automatically for us. In instances where someone is using their own local mssql container they'll
257
255
  # need to set up the networks manually and set TINYTDS_UNIT_HOST to their mssql container name
258
256
  # For anything other than localhost just use the environment config
259
- env_host = ENV['TINYTDS_UNIT_HOST_TEST'] || ENV['TINYTDS_UNIT_HOST'] || 'localhost'
260
- host = ['localhost', '127.0.0.1', '0.0.0.0'].include?(env_host) ? 'sqlserver' : env_host
261
- port = ENV['TINYTDS_UNIT_PORT'] || 1433
257
+ toxi_host = ENV['TOXIPROXY_HOST'] || 'localhost'
258
+ toxi_api_port = 8474
259
+ toxi_test_port = 1234
260
+ Toxiproxy.host = "http://#{toxi_host}:#{toxi_api_port}"
261
+
262
+ toxi_upstream_host = ENV['TINYTDS_UNIT_HOST_TEST'] || ENV['TINYTDS_UNIT_HOST'] || 'localhost'
263
+ toxi_upstream_port = ENV['TINYTDS_UNIT_PORT'] || 1433
264
+
265
+ puts "\n-------------------------"
266
+ puts "Toxiproxy api listener: #{toxi_host}:#{toxi_api_port}"
267
+ puts "Toxiproxy unit test listener: #{toxi_host}:#{toxi_test_port}"
268
+ puts "Toxiproxy upstream sqlserver: #{toxi_upstream_host}:#{toxi_upstream_port}"
269
+ puts '-------------------------'
270
+
262
271
  Toxiproxy.populate([
263
272
  {
264
273
  name: "sqlserver_test",
265
- listen: "0.0.0.0:1234",
266
- upstream: "#{host}:#{port}"
274
+ listen: "#{toxi_host}:#{toxi_test_port}",
275
+ upstream: "#{toxi_upstream_host}:#{toxi_upstream_port}"
267
276
  }
268
277
  ])
269
278
  end
data/tiny_tds.gemspec CHANGED
@@ -20,11 +20,12 @@ Gem::Specification.new do |s|
20
20
  s.license = 'MIT'
21
21
  s.required_ruby_version = '>= 2.0.0'
22
22
  s.metadata['msys2_mingw_dependencies'] = 'freetds'
23
- s.add_development_dependency 'mini_portile2', '~> 2.0'
24
- s.add_development_dependency 'rake', '~> 13.0'
25
- s.add_development_dependency 'rake-compiler', '~> 1.0'
26
- s.add_development_dependency 'rake-compiler-dock', '~> 1.0'
27
- s.add_development_dependency 'minitest', '~> 5.6'
28
- s.add_development_dependency 'connection_pool', '~> 2.2'
23
+ s.add_development_dependency 'mini_portile2', '~> 2.5.0'
24
+ s.add_development_dependency 'rake', '~> 13.0.0'
25
+ s.add_development_dependency 'rake-compiler', '~> 1.2'
26
+ s.add_development_dependency 'rake-compiler-dock', '~> 1.3.0'
27
+ s.add_development_dependency 'minitest', '~> 5.14.0'
28
+ s.add_development_dependency 'minitest-ci', '~> 3.4.0'
29
+ s.add_development_dependency 'connection_pool', '~> 2.2.0'
29
30
  s.add_development_dependency 'toxiproxy', '~> 2.0.0'
30
31
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tiny_tds
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.5
4
+ version: 2.1.6
5
5
  platform: x86-mingw32
6
6
  authors:
7
7
  - Ken Collins
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-05-20 00:00:00.000000000 Z
13
+ date: 2023-12-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: mini_portile2
@@ -18,84 +18,98 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '2.0'
21
+ version: 2.5.0
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: '2.0'
28
+ version: 2.5.0
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: rake
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - "~>"
34
34
  - !ruby/object:Gem::Version
35
- version: '13.0'
35
+ version: 13.0.0
36
36
  type: :development
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: '13.0'
42
+ version: 13.0.0
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: rake-compiler
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '1.0'
49
+ version: '1.2'
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: '1.0'
56
+ version: '1.2'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: rake-compiler-dock
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: '1.0'
63
+ version: 1.3.0
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
- version: '1.0'
70
+ version: 1.3.0
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: minitest
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
75
  - - "~>"
76
76
  - !ruby/object:Gem::Version
77
- version: '5.6'
77
+ version: 5.14.0
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - "~>"
83
83
  - !ruby/object:Gem::Version
84
- version: '5.6'
84
+ version: 5.14.0
85
+ - !ruby/object:Gem::Dependency
86
+ name: minitest-ci
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: 3.4.0
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: 3.4.0
85
99
  - !ruby/object:Gem::Dependency
86
100
  name: connection_pool
87
101
  requirement: !ruby/object:Gem::Requirement
88
102
  requirements:
89
103
  - - "~>"
90
104
  - !ruby/object:Gem::Version
91
- version: '2.2'
105
+ version: 2.2.0
92
106
  type: :development
93
107
  prerelease: false
94
108
  version_requirements: !ruby/object:Gem::Requirement
95
109
  requirements:
96
110
  - - "~>"
97
111
  - !ruby/object:Gem::Version
98
- version: '2.2'
112
+ version: 2.2.0
99
113
  - !ruby/object:Gem::Dependency
100
114
  name: toxiproxy
101
115
  requirement: !ruby/object:Gem::Requirement
@@ -121,11 +135,11 @@ executables:
121
135
  extensions: []
122
136
  extra_rdoc_files: []
123
137
  files:
138
+ - ".circleci/config.yml"
124
139
  - ".codeclimate.yml"
125
140
  - ".gitattributes"
126
141
  - ".gitignore"
127
142
  - ".rubocop.yml"
128
- - ".travis.yml"
129
143
  - CHANGELOG.md
130
144
  - CODE_OF_CONDUCT.md
131
145
  - Gemfile
@@ -134,7 +148,6 @@ files:
134
148
  - README.md
135
149
  - Rakefile
136
150
  - VERSION
137
- - appveyor.yml
138
151
  - bin/defncopy-ttds
139
152
  - bin/tsql-ttds
140
153
  - docker-compose.yml
@@ -152,6 +165,7 @@ files:
152
165
  - lib/tiny_tds/2.5/tiny_tds.so
153
166
  - lib/tiny_tds/2.6/tiny_tds.so
154
167
  - lib/tiny_tds/2.7/tiny_tds.so
168
+ - lib/tiny_tds/3.0/tiny_tds.so
155
169
  - lib/tiny_tds/bin.rb
156
170
  - lib/tiny_tds/client.rb
157
171
  - lib/tiny_tds/error.rb
@@ -161,35 +175,37 @@ files:
161
175
  - patches/freetds/1.00.27/0001-mingw_missing_inet_pton.diff
162
176
  - patches/freetds/1.00.27/0002-Don-t-use-MSYS2-file-libws2_32.diff
163
177
  - patches/libiconv/1.14/1-avoid-gets-error.patch
164
- - ports/i686-w64-mingw32/freetds/1.1.24/bin/bsqldb.exe
165
- - ports/i686-w64-mingw32/freetds/1.1.24/bin/datacopy.exe
166
- - ports/i686-w64-mingw32/freetds/1.1.24/bin/defncopy.exe
167
- - ports/i686-w64-mingw32/freetds/1.1.24/bin/freebcp.exe
168
- - ports/i686-w64-mingw32/freetds/1.1.24/bin/libct-4.dll
169
- - ports/i686-w64-mingw32/freetds/1.1.24/bin/libsybdb-5.dll
170
- - ports/i686-w64-mingw32/freetds/1.1.24/bin/osql
171
- - ports/i686-w64-mingw32/freetds/1.1.24/bin/tdspool.exe
172
- - ports/i686-w64-mingw32/freetds/1.1.24/bin/tsql.exe
173
- - ports/i686-w64-mingw32/freetds/1.1.24/lib/libct.dll.a
174
- - ports/i686-w64-mingw32/freetds/1.1.24/lib/libct.la
175
- - ports/i686-w64-mingw32/freetds/1.1.24/lib/libsybdb.dll.a
176
- - ports/i686-w64-mingw32/freetds/1.1.24/lib/libsybdb.la
177
- - ports/i686-w64-mingw32/libiconv/1.15/bin/iconv.exe
178
- - ports/i686-w64-mingw32/libiconv/1.15/bin/libcharset-1.dll
179
- - ports/i686-w64-mingw32/libiconv/1.15/bin/libiconv-2.dll
180
- - ports/i686-w64-mingw32/libiconv/1.15/lib/charset.alias
181
- - ports/i686-w64-mingw32/libiconv/1.15/lib/libcharset.dll.a
182
- - ports/i686-w64-mingw32/libiconv/1.15/lib/libcharset.la
183
- - ports/i686-w64-mingw32/libiconv/1.15/lib/libiconv.dll.a
184
- - ports/i686-w64-mingw32/libiconv/1.15/lib/libiconv.la
185
- - ports/i686-w64-mingw32/openssl/1.1.1d/bin/c_rehash
186
- - ports/i686-w64-mingw32/openssl/1.1.1d/bin/libcrypto-1_1.dll
187
- - ports/i686-w64-mingw32/openssl/1.1.1d/bin/libssl-1_1.dll
188
- - ports/i686-w64-mingw32/openssl/1.1.1d/bin/openssl.exe
189
- - ports/i686-w64-mingw32/openssl/1.1.1d/lib/libcrypto.a
190
- - ports/i686-w64-mingw32/openssl/1.1.1d/lib/libcrypto.dll.a
191
- - ports/i686-w64-mingw32/openssl/1.1.1d/lib/libssl.a
192
- - ports/i686-w64-mingw32/openssl/1.1.1d/lib/libssl.dll.a
178
+ - ports/x86-mingw32/freetds/1.1.24/bin/bsqldb.exe
179
+ - ports/x86-mingw32/freetds/1.1.24/bin/datacopy.exe
180
+ - ports/x86-mingw32/freetds/1.1.24/bin/defncopy.exe
181
+ - ports/x86-mingw32/freetds/1.1.24/bin/freebcp.exe
182
+ - ports/x86-mingw32/freetds/1.1.24/bin/libct-4.dll
183
+ - ports/x86-mingw32/freetds/1.1.24/bin/libsybdb-5.dll
184
+ - ports/x86-mingw32/freetds/1.1.24/bin/osql
185
+ - ports/x86-mingw32/freetds/1.1.24/bin/tdspool.exe
186
+ - ports/x86-mingw32/freetds/1.1.24/bin/tsql.exe
187
+ - ports/x86-mingw32/freetds/1.1.24/lib/libct.dll.a
188
+ - ports/x86-mingw32/freetds/1.1.24/lib/libct.la
189
+ - ports/x86-mingw32/freetds/1.1.24/lib/libsybdb.dll.a
190
+ - ports/x86-mingw32/freetds/1.1.24/lib/libsybdb.la
191
+ - ports/x86-mingw32/libiconv/1.15/bin/iconv.exe
192
+ - ports/x86-mingw32/libiconv/1.15/bin/libcharset-1.dll
193
+ - ports/x86-mingw32/libiconv/1.15/bin/libiconv-2.dll
194
+ - ports/x86-mingw32/libiconv/1.15/lib/charset.alias
195
+ - ports/x86-mingw32/libiconv/1.15/lib/libcharset.dll.a
196
+ - ports/x86-mingw32/libiconv/1.15/lib/libcharset.la
197
+ - ports/x86-mingw32/libiconv/1.15/lib/libiconv.dll.a
198
+ - ports/x86-mingw32/libiconv/1.15/lib/libiconv.la
199
+ - ports/x86-mingw32/openssl/1.1.1s/bin/c_rehash
200
+ - ports/x86-mingw32/openssl/1.1.1s/bin/libcrypto-1_1.dll
201
+ - ports/x86-mingw32/openssl/1.1.1s/bin/libssl-1_1.dll
202
+ - ports/x86-mingw32/openssl/1.1.1s/bin/openssl.exe
203
+ - ports/x86-mingw32/openssl/1.1.1s/lib/libcrypto.a
204
+ - ports/x86-mingw32/openssl/1.1.1s/lib/libcrypto.dll.a
205
+ - ports/x86-mingw32/openssl/1.1.1s/lib/libssl.a
206
+ - ports/x86-mingw32/openssl/1.1.1s/lib/libssl.dll.a
207
+ - setup_cimgruby_dev.sh
208
+ - start_dev.sh
193
209
  - tasks/native_gem.rake
194
210
  - tasks/package.rake
195
211
  - tasks/ports.rake
@@ -198,14 +214,15 @@ files:
198
214
  - tasks/ports/openssl.rb
199
215
  - tasks/ports/recipe.rb
200
216
  - tasks/test.rake
201
- - test/appveyor/dbsetup.ps1
202
- - test/appveyor/dbsetup.sql
203
217
  - test/benchmark/query.rb
204
218
  - test/benchmark/query_odbc.rb
205
219
  - test/benchmark/query_tinytds.rb
206
220
  - test/bin/install-freetds.sh
221
+ - test/bin/install-mssql.ps1
222
+ - test/bin/install-mssqltools.sh
207
223
  - test/bin/install-openssl.sh
208
- - test/bin/setup.sh
224
+ - test/bin/setup_tinytds_db.sh
225
+ - test/bin/setup_volume_permissions.sh
209
226
  - test/client_test.rb
210
227
  - test/gem_test.rb
211
228
  - test/result_test.rb
@@ -218,6 +235,8 @@ files:
218
235
  - test/schema/sqlserver_azure.sql
219
236
  - test/schema/sybase_ase.sql
220
237
  - test/schema_test.rb
238
+ - test/sql/db-create.sql
239
+ - test/sql/db-login.sql
221
240
  - test/test_helper.rb
222
241
  - test/thread_test.rb
223
242
  - tiny_tds.gemspec
@@ -237,14 +256,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
237
256
  version: '2.4'
238
257
  - - "<"
239
258
  - !ruby/object:Gem::Version
240
- version: 2.8.dev
259
+ version: 3.1.dev
241
260
  required_rubygems_version: !ruby/object:Gem::Requirement
242
261
  requirements:
243
262
  - - ">="
244
263
  - !ruby/object:Gem::Version
245
264
  version: '0'
246
265
  requirements: []
247
- rubygems_version: 3.1.2
266
+ rubygems_version: 3.3.26
248
267
  signing_key:
249
268
  specification_version: 4
250
269
  summary: TinyTDS - A modern, simple and fast FreeTDS library for Ruby using DB-Library.
data/.travis.yml DELETED
@@ -1,25 +0,0 @@
1
- sudo: required
2
- cache: bundler
3
- services:
4
- - docker
5
- env:
6
- global:
7
- - PATH=/opt/local/bin:$PATH
8
- - TESTOPTS="-v"
9
- - TINYTDS_UNIT_HOST=localhost
10
- rvm:
11
- - 2.4.5
12
- - 2.5.3
13
- - 2.6.1
14
- - 2.7.0
15
- before_install:
16
- - docker info
17
- - docker-compose up -d
18
- - sudo ./test/bin/install-openssl.sh
19
- - sudo ./test/bin/install-freetds.sh
20
- install:
21
- - gem install bundler
22
- - bundle --version
23
- - bundle install
24
- script:
25
- - bundle exec rake
data/appveyor.yml DELETED
@@ -1,72 +0,0 @@
1
- init:
2
- - SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
3
- - SET RAKEOPT=-rdevkit
4
- - SET TESTOPTS='-v'
5
- - SET MAKE=make V=1 -j2
6
- clone_depth: 5
7
- skip_tags: true
8
- skip_branch_with_pr: true
9
- matrix:
10
- fast_finish: false
11
- install:
12
- # Output debugging info
13
- - ps: Update-AppveyorBuild -Version "$(Get-Content $env:appveyor_build_folder\VERSION).$env:appveyor_build_number"
14
- - ps: |
15
- if ($env:ruby_version -like "*head*") {
16
- $(new-object net.webclient).DownloadFile("https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-$env:ruby_version.exe", "$pwd/ruby-setup.exe")
17
- cmd /c ruby-setup.exe /verysilent /dir=C:/Ruby$env:ruby_version
18
- }
19
- - perl --version
20
- - ruby --version
21
- - gem --version
22
- # Update keyring according to https://www.msys2.org/news/#2020-06-29-new-packagers
23
- - C:\msys64\usr\bin\curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
24
- - C:\msys64\usr\bin\curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig
25
- - ridk exec bash -c "pacman-key --verify msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig"
26
- - ridk exec bash -c "pacman -U --noconfirm --config <(echo) msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
27
- # Update zstd and pacman first https://github.com/msys2/MSYS2-packages/issues/2300
28
- - C:\msys64\usr\bin\pacman --noconfirm --upgrade https://repo.msys2.org/msys/x86_64/zstd-1.4.7-1-x86_64.pkg.tar.xz # Must come First, or else pacman will install 1.4.8
29
- - C:\msys64\usr\bin\pacman --noconfirm --upgrade https://repo.msys2.org/msys/x86_64/pacman-5.2.2-5-x86_64.pkg.tar.xz
30
- # update packages
31
- - C:\msys64\usr\bin\pacman --noconfirm --ask 20 --sync --refresh --refresh --sysupgrade --sysupgrade
32
- # Kill all running msys2 binaries to avoid error "size of shared memory region changed".
33
- # See https://github.com/msys2/MSYS2-packages/issues/258
34
- - powershell -Command "Get-Process | Where-Object {$_.path -like 'C:\msys64*'} | Stop-Process"
35
- # refresh the package list to avoid "error: failed to prepare transaction (could not find database)"
36
- - ridk exec bash -c "pacman --noconfirm -Sy"
37
- # prevent freetds to link to wrong ws2_32 lib on i686-w64-mingw32
38
- - c:/msys64/usr/bin/rm /usr/lib/w32api/libws2_32.a
39
- # Set up project prerequisits
40
- - bundle install
41
- - bundle exec rake ports
42
- build: off
43
- branches:
44
- except:
45
- - /dev.*/
46
- test_script:
47
- - timeout /t 4 /nobreak > NUL
48
- - powershell -File "%APPVEYOR_BUILD_FOLDER%\test\appveyor\dbsetup.ps1"
49
- - timeout /t 4 /nobreak > NUL
50
- - ps: Start-Service 'MSSQL$SQL2014'
51
- - timeout /t 4 /nobreak > NUL
52
- - sqlcmd -S ".\SQL2014" -U sa -P Password12! -i %APPVEYOR_BUILD_FOLDER%\test\appveyor\dbsetup.sql
53
- - bundle exec rake ports build test TINYTDS_UNIT_HOST_TEST=localhost TINYTDS_UNIT_DATASERVER="localhost\SQL2014" TINYTDS_SCHEMA=sqlserver_2014 TDSVER=7.1
54
- - bundle exec rake ports build test TINYTDS_UNIT_HOST_TEST=localhost TINYTDS_UNIT_DATASERVER="localhost\SQL2014" TINYTDS_SCHEMA=sqlserver_2014
55
- - ps: Stop-Service 'MSSQL$SQL2014'
56
- - ps: Start-Service 'MSSQL$SQL2012SP1'
57
- - timeout /t 4 /nobreak > NUL
58
- - sqlcmd -S ".\SQL2012SP1" -U sa -P Password12! -i %APPVEYOR_BUILD_FOLDER%\test\appveyor\dbsetup.sql
59
- - bundle exec rake ports build test TINYTDS_UNIT_HOST_TEST=localhost TINYTDS_UNIT_DATASERVER="localhost\SQL2012SP1" TINYTDS_SCHEMA=sqlserver_2014
60
- environment:
61
- CI_AZURE_HOST:
62
- secure: 8ydpYysZYKEBKvp6plKlYfepH98/zAuT27FFCaJ9Sss=
63
- TINYTDS_UNIT_AZURE_PASS:
64
- secure: fYKSKV4v+36OFQp2nZdX4DfUpgmy5cm0wuR73cgdmEk=
65
- matrix:
66
- - ruby_version: "24"
67
- - ruby_version: "25-x64"
68
- - ruby_version: "26"
69
- - ruby_version: "head-x64"
70
- on_failure:
71
- - find -name config.log | xargs cat
72
- - find -name compile.log | xargs cat