Skip to content

Commit 4328465

Browse files
authored
Merge pull request #105 from LowlyDBA/development
Increase code cov
2 parents 530d221 + 6be7a6a commit 4328465

File tree

9 files changed

+453
-368
lines changed

9 files changed

+453
-368
lines changed

appveyor/run_tsqlt_tests.ps1

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
1+
param(
2+
[Parameter()]
3+
$FilePath = $env:TSQLTTESTPATH,
4+
$SqlInstance = $env:DB_INSTANCE,
5+
$Database = $env:TARGET_DB,
6+
$SqlUser = $env:MSSQL_LOGIN,
7+
$SqlPass = $env:MSSQL_PASS,
8+
$SQLAuth = $true
9+
)
10+
111
Write-Host "Run tSQLt Tests"
212

3-
ForEach ($filename in Get-Childitem -Path $env:TSQLTTESTPATH -Filter "*.sql") {
4-
Invoke-SqlCmd -ServerInstance $env:DB_INSTANCE -Database $env:TARGET_DB -InputFile $filename.fullname -Username $env:MSSQL_LOGIN -Password $env:MSSQL_PASS -Verbose | Out-Null
13+
ForEach ($filename in Get-Childitem -Path $FilePath -Filter "*.sql") {
14+
If ($SQLAuth) {
15+
Invoke-SqlCmd -ServerInstance $SqlInstance -Database $Database -InputFile $filename.fullname -Username $SqlUser -Password $SqlPass -Verbose | Out-Null
16+
}
17+
Else {
18+
Invoke-SqlCmd -ServerInstance $SqlInstance -Database $Database -InputFile $filename.fullname -Verbose | Out-Null
19+
}
520
}

appveyor/sqlcover/Coverage.opencoverxml

Lines changed: 309 additions & 318 deletions
Large diffs are not rendered by default.

appveyor/sqlcover/[dbo].[sp_helpme]

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,6 @@ BEGIN
210210
IF @ObjID IS NULL
211211
BEGIN
212212
RAISERROR(15009,-1,-1,@objname,@DbName);
213-
RETURN(1);
214213
END
215214

216215
-- Data Type help (prec/scale only valid for numerics)
@@ -480,23 +479,10 @@ BEGIN
480479
END
481480
ELSE IF @SysObj_Type IN ('V ')
482481
BEGIN
483-
-- Views dont have constraints, but print these messages because 6.5 did
484-
RAISERROR(15469,-1,-1,@objname); -- No constraints defined for reference table '%ls'.
485-
RAISERROR(15470,-1,-1,@objname); -- No foreign keys for reference table '%ls'.
486482
EXEC sys.sp_helpindex @objname;
487483
END
488484

489485
RETURN (0); -- sp_helpme
490486
END;
491-
/* Cleanup existing versions */
492-
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_sizeoptimiser]'))
493-
BEGIN
494-
DROP PROCEDURE [dbo].[sp_sizeoptimiser];
495-
END;
496-
497-
IF EXISTS (SELECT * FROM sys.types st JOIN sys.schemas ss ON st.schema_id = ss.schema_id WHERE st.name = N'SizeOptimiserTableType' AND ss.name = N'dbo')
498-
BEGIN
499-
DROP TYPE [dbo].[SizeOptimiserTableType];
500-
END;
501487

502488

appveyor/sqlcover/[dbo].[sp_sizeoptimiser]

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11

22
CREATE PROCEDURE [dbo].[sp_sizeoptimiser]
3-
@IndexNumThreshold SMALLINT = 10
3+
@IndexNumThreshold SMALLINT = 10
44
,@IncludeDatabases [dbo].[SizeOptimiserTableType] READONLY
55
,@ExcludeDatabases [dbo].[SizeOptimiserTableType] READONLY
6-
,@IncludeSysDatabases BIT = 0
7-
,@IncludeSSRSDatabases BIT = 0
8-
,@Verbose BIT = 1
6+
,@IncludeSysDatabases BIT = 0
7+
,@IncludeSSRSDatabases BIT = 0
8+
,@Verbose BIT = 1
99
/* Parameters defined here for testing only */
10-
,@IsExpress BIT = NULL
11-
,@SqlMajorVersion TINYINT = NULL
12-
,@SqlMinorVersion SMALLINT = NULL
10+
,@IsExpress BIT = NULL
11+
,@SqlMajorVersion TINYINT = NULL
12+
,@SqlMinorVersion SMALLINT = NULL
1313

1414
WITH RECOMPILE
1515
AS
@@ -50,8 +50,6 @@ Example:
5050

5151
BEGIN
5252
SET NOCOUNT ON;
53-
SET ANSI_NULLS ON;
54-
SET QUOTED_IDENTIFIER ON;
5553

5654
BEGIN TRY
5755

@@ -130,10 +128,13 @@ BEGIN
130128
INSERT INTO #Databases
131129
SELECT [sd].[name]
132130
FROM [sys].[databases] AS [sd]
133-
WHERE NOT EXISTS (SELECT [d].[database_name] FROM @IncludeDatabases AS [d] WHERE [sd].[name] COLLATE database_default = REPLACE(REPLACE([d].[database_name], '[', ''), ']', ''))
131+
WHERE NOT EXISTS (SELECT [d].[database_name]
132+
FROM @IncludeDatabases AS [d]
133+
WHERE [sd].[name] COLLATE database_default = REPLACE(REPLACE([d].[database_name], '[', ''), ']', ''))
134134
AND DATABASEPROPERTYEX([sd].[name], 'UPDATEABILITY') = N'READ_WRITE'
135135
AND DATABASEPROPERTYEX([sd].[name], 'USERACCESS') = N'MULTI_USER'
136-
AND DATABASEPROPERTYEX([sd].[name], 'STATUS') = N'ONLINE';
136+
AND DATABASEPROPERTYEX([sd].[name], 'STATUS') = N'ONLINE'
137+
AND [sd].[name] <> 'tempdb';
137138
END
138139

139140
/* Find edition */

install_expsql.sql

-286 Bytes
Binary file not shown.

sp_helpme.sql

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,6 @@ BEGIN
221221
IF @ObjID IS NULL
222222
BEGIN
223223
RAISERROR(15009,-1,-1,@objname,@DbName);
224-
RETURN(1);
225224
END
226225

227226
-- Data Type help (prec/scale only valid for numerics)
@@ -491,11 +490,9 @@ BEGIN
491490
END
492491
ELSE IF @SysObj_Type IN ('V ')
493492
BEGIN
494-
-- Views dont have constraints, but print these messages because 6.5 did
495-
RAISERROR(15469,-1,-1,@objname); -- No constraints defined for reference table '%ls'.
496-
RAISERROR(15470,-1,-1,@objname); -- No foreign keys for reference table '%ls'.
497493
EXEC sys.sp_helpindex @objname;
498494
END
499495

500496
RETURN (0); -- sp_helpme
501497
END;
498+
GO

sp_sizeoptimiser.sql

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1+
SET ANSI_NULLS ON;
2+
GO
3+
4+
SET QUOTED_IDENTIFIER ON;
5+
GO
6+
7+
/******************************/
18
/* Cleanup existing versions */
9+
/*****************************/
210
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_sizeoptimiser]'))
311
BEGIN
412
DROP PROCEDURE [dbo].[sp_sizeoptimiser];
@@ -31,16 +39,16 @@ IF NOT EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_
3139
GO
3240

3341
ALTER PROCEDURE [dbo].[sp_sizeoptimiser]
34-
@IndexNumThreshold SMALLINT = 10
42+
@IndexNumThreshold SMALLINT = 10
3543
,@IncludeDatabases [dbo].[SizeOptimiserTableType] READONLY
3644
,@ExcludeDatabases [dbo].[SizeOptimiserTableType] READONLY
37-
,@IncludeSysDatabases BIT = 0
38-
,@IncludeSSRSDatabases BIT = 0
39-
,@Verbose BIT = 1
45+
,@IncludeSysDatabases BIT = 0
46+
,@IncludeSSRSDatabases BIT = 0
47+
,@Verbose BIT = 1
4048
/* Parameters defined here for testing only */
41-
,@IsExpress BIT = NULL
42-
,@SqlMajorVersion TINYINT = NULL
43-
,@SqlMinorVersion SMALLINT = NULL
49+
,@IsExpress BIT = NULL
50+
,@SqlMajorVersion TINYINT = NULL
51+
,@SqlMinorVersion SMALLINT = NULL
4452

4553
WITH RECOMPILE
4654
AS
@@ -81,8 +89,6 @@ Example:
8189

8290
BEGIN
8391
SET NOCOUNT ON;
84-
SET ANSI_NULLS ON;
85-
SET QUOTED_IDENTIFIER ON;
8692

8793
BEGIN TRY
8894

@@ -161,10 +167,13 @@ BEGIN
161167
INSERT INTO #Databases
162168
SELECT [sd].[name]
163169
FROM [sys].[databases] AS [sd]
164-
WHERE NOT EXISTS (SELECT [d].[database_name] FROM @IncludeDatabases AS [d] WHERE [sd].[name] COLLATE database_default = REPLACE(REPLACE([d].[database_name], '[', ''), ']', ''))
170+
WHERE NOT EXISTS (SELECT [d].[database_name]
171+
FROM @IncludeDatabases AS [d]
172+
WHERE [sd].[name] COLLATE database_default = REPLACE(REPLACE([d].[database_name], '[', ''), ']', ''))
165173
AND DATABASEPROPERTYEX([sd].[name], 'UPDATEABILITY') = N'READ_WRITE'
166174
AND DATABASEPROPERTYEX([sd].[name], 'USERACCESS') = N'MULTI_USER'
167-
AND DATABASEPROPERTYEX([sd].[name], 'STATUS') = N'ONLINE';
175+
AND DATABASEPROPERTYEX([sd].[name], 'STATUS') = N'ONLINE'
176+
AND [sd].[name] <> 'tempdb';
168177
END
169178

170179
/* Find edition */

tests/build/sp_doc_tests.sql

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,11 @@ AS
3030
BEGIN;
3131

3232
DECLARE @db SYSNAME = 'tSQLt';
33+
DECLARE @command NVARCHAR(MAX) = '[dbo].[sp_doc] @DatabaseName = ' + @db + ';';
3334

3435
--Assert
3536
EXEC [tSQLt].[ExpectNoException];
36-
EXEC [dbo].[sp_doc] @DatabaseName = @db;
37+
EXEC [tSQLt].[SuppressOutput] @command = @command;
3738

3839
END;
3940
GO
@@ -61,9 +62,11 @@ CREATE PROCEDURE [sp_doc].[test sp succeeds on current db if none given]
6162
AS
6263
BEGIN;
6364

65+
DECLARE @command NVARCHAR(MAX) = '[dbo].[sp_doc];';
66+
6467
--Assert
6568
EXEC [tSQLt].[ExpectNoException];
66-
EXEC [dbo].[sp_doc];
69+
EXEC [tSQLt].[SuppressOutput] @command = @command;
6770

6871
END;
6972
GO
@@ -92,9 +95,11 @@ AS
9295
BEGIN;
9396

9497
DECLARE @version TINYINT = 13;
98+
DECLARE @command NVARCHAR(MAX) = '[dbo].[sp_doc] @SqlMajorVersion = ' + CAST(@version AS NVARCHAR(4)) + ';';
99+
95100
--Assert
96-
EXEC [tSQLt].[ExpectNoException]
97-
EXEC [dbo].[sp_doc] @SqlMajorVersion = @version;
101+
EXEC [tSQLt].[ExpectNoException];
102+
EXEC [tSQLt].[SuppressOutput] @command = @command;
98103

99104
END;
100105
GO

tests/build/sp_sizeoptimiser_tests.sql

Lines changed: 85 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,14 +114,14 @@ AS
114114
BEGIN;
115115

116116
--Build
117-
DECLARE @version TINYINT = 11;
117+
DECLARE @version TINYINT = 10;
118118
DECLARE @IncludeDatabases [dbo].[SizeOptimiserTableType];
119119

120120
INSERT INTO @IncludeDatabases
121121
VALUES ('master');
122122

123123
--Assert
124-
EXEC [tSQLt].[ExpectNoException]
124+
EXEC [tSQLt].[ExpectException] @ExpectedMessage = N'SQL Server versions below 2012 are not supported, sorry!', @ExpectedSeverity = 16, @ExpectedState = 1, @ExpectedErrorNumber = 50000
125125
EXEC [dbo].[sp_sizeoptimiser] @IncludeDatabases = @IncludeDatabases, @SqlMajorVersion = @version, @Verbose = 0;
126126

127127
END;
@@ -134,6 +134,26 @@ CREATE PROCEDURE [sp_sizeoptimiser].[test sp succeeds on supported version]
134134
AS
135135
BEGIN;
136136

137+
--Build
138+
DECLARE @version TINYINT = 13;
139+
DECLARE @IncludeDatabases [dbo].[SizeOptimiserTableType];
140+
DECLARE @command NVARCHAR(MAX) = N'EXEC [dbo].[sp_sizeoptimiser] @SqlMajorVersion = ' + CAST(@version AS NVARCHAR(2)) + ', @Verbose = 0;'
141+
142+
--Assert
143+
EXEC [tSQLt].[ExpectNoException]
144+
EXEC [tSQLt].[SuppressOutput] @command = @command;
145+
146+
END;
147+
GO
148+
149+
150+
/*
151+
test success on supported SQL Server >= v12
152+
*/
153+
CREATE PROCEDURE [sp_sizeoptimiser].[test sp succeeds with verbose mode]
154+
AS
155+
BEGIN;
156+
137157
--Build
138158
DECLARE @version TINYINT = 13;
139159
DECLARE @IncludeDatabases [dbo].[SizeOptimiserTableType];
@@ -143,11 +163,72 @@ VALUES ('master');
143163

144164
--Assert
145165
EXEC [tSQLt].[ExpectNoException]
146-
EXEC [dbo].[sp_sizeoptimiser] @IncludeDatabases = @IncludeDatabases, @SqlMajorVersion = @version, @Verbose = 0;
166+
DECLARE @command NVARCHAR(MAX) = 'EXEC [dbo].[sp_sizeoptimiser] @Verbose = 1;';
167+
EXEC [tSQLt].[SuppressOutput] @command = @command;
168+
169+
END;
170+
GO
171+
172+
/*
173+
test success on @ExcludeDatabases
174+
*/
175+
CREATE PROCEDURE [sp_sizeoptimiser].[test sp succeeds with @ExcludeDatabases]
176+
AS
177+
BEGIN;
178+
179+
--Build
180+
DECLARE @version TINYINT = 13;
181+
DECLARE @ExcludeDatabases [dbo].[SizeOptimiserTableType];
182+
183+
INSERT INTO @ExcludeDatabases
184+
VALUES ('master');
185+
186+
--Assert
187+
EXEC [tSQLt].[ExpectNoException]
188+
EXEC [dbo].[sp_sizeoptimiser] @ExcludeDatabases = @ExcludeDatabases, @Verbose = 0;
189+
190+
END;
191+
GO
192+
193+
/*
194+
test fail on non-existant databases
195+
*/
196+
CREATE PROCEDURE [sp_sizeoptimiser].[test sp fails with imaginary database]
197+
AS
198+
BEGIN;
199+
200+
--Build
201+
DECLARE @IncludeDatabases [dbo].[SizeOptimiserTableType];
202+
DECLARE @DbName SYSNAME = 'BlackLivesMatter';
203+
DECLARE @ExpectedMessage NVARCHAR(MAX) = FORMATMESSAGE('Supplied databases do not exist or are not accessible: %s.', @DbName);
204+
205+
INSERT INTO @IncludeDatabases
206+
VALUES (@DbName);
207+
208+
--Assert
209+
EXEC [tSQLt].[ExpectException] @ExpectedMessage = @ExpectedMessage, @ExpectedSeverity = 16, @ExpectedState = 1, @ExpectedErrorNumber = 50000
210+
EXEC [dbo].[sp_sizeoptimiser] @IncludeDatabases = @IncludeDatabases;
211+
212+
END;
213+
GO
214+
215+
/*
216+
test success on SQLExpress
217+
*/
218+
CREATE PROCEDURE [sp_sizeoptimiser].[test sp succeeds in Express Mode]
219+
AS
220+
BEGIN;
221+
222+
--Build
223+
DECLARE @IsExpress BIT = 1;
224+
225+
--Assert
226+
EXEC [tSQLt].[ExpectNoException]
227+
EXEC [dbo].[sp_sizeoptimiser] @IsExpress = @IsExpress, @Verbose = 0;
147228

148229
END;
149230
GO
150231

151232
/************************************
152233
End sp_sizeoptimiser tests
153-
*************************************/
234+
*************************************/

0 commit comments

Comments
 (0)