Commit Graph

142 Commits

Author SHA1 Message Date
Leila Lali
80a847ff4f some bug fixes in pref tests 2016-11-11 10:07:55 -08:00
Leila Lali
18bf76caed If the test name file cannot be found just use the settings.json 2016-11-09 16:12:11 -08:00
Leila Lali
92420e734f copy the sql script file to the output folder 2016-11-09 12:19:14 -08:00
Mitchell Sternke
2319de41e0 Added basic stress tests for the service (#140) 2016-11-09 12:02:19 -08:00
Leila Lali
95a9c86dd3 added perf tests using test driver (#136)
* added perf tests using test driver
2016-11-08 14:37:43 -08:00
Benjamin Russell
3808dcdafd Adding TestDriver project and CodeCoverage folder to the main solution (#133)
This will make it much easier for Visual Studio users to validate the TestDriver project.

* Adding TestDriver project and CodeCoverage folder to the main solution

* Adding fallback value for service layer exe path to allow tests to run in Visual Studio
2016-11-07 15:08:53 -08:00
llali
3d8eefa685 Fixed a failed test 2016-11-07 13:19:28 -08:00
Karl Burtram
54b5488ce2 Bump SMO to 140.1.11 (#137)
Version bump only
2016-11-05 16:56:37 -07:00
Mitchell Sternke
4a8810ca71 Re-add scrubbed file 2016-11-03 13:54:23 -07:00
Benjamin Russell
d5fbebc287 Progressive Results Part 1: Batch Completion Notification (#95)
The main feature of this pull request is a new callback that's added to the query class that is called when a batch has completed execution and retrieval of results. This callback will send an event to the extension with the batch summary information. After that, the extension can submit subset requests for the resultsets of the batch.
Other smaller changes in this pull request:
Refactor to assign a batch a id when its created instead of when returning the list of batch summaries
Passing the SelectionData around instead of extracting the values for it
Moving creation of BatchSummary into the Batch class
Retrieval of results is now permitted even if the entire query has not completed, as long as the batch requested has completed.
Also note, this does not break the protocol. It adds a new event that a queryRunner can listen to, but it doesn't require it to be listened to.

* Refactor to remove SectionData class in favor of BufferRange

* Adding callback for batch completion that will let the extension know that a batch has completed execution

* Refactoring to make progressive results work as per async query execution

* Allowing retrieval of batch results while query is in progress

* reverting global.json, whoops

* Adding a few missing comments, and fixing a couple code style bugs

* Using SelectionData everywhere again

* One more missing comment
2016-11-02 17:43:38 -07:00
Mitchell Sternke
d79842f24b Added first batch of query execution tests using the test driver (#131)
* Added first batch of query execution tests using the test driver

* Fix issues from merge with dev
2016-11-01 13:21:05 -07:00
Karl Burtram
eafe2973be Update nuget.config to pull private nuget packages from within the repro. (#132) 2016-11-01 11:09:55 -07:00
Karl Burtram
69bbb652da Add more code coverage tests. (#129) 2016-10-29 19:59:58 -07:00
Karl Burtram
ab1316b1fb Next batch of code coverage tests. (#128)
Auto-merging test-only changes.  Please review the commit and I'll make changes in next iteration.

* Add more tests to boast code coverage

* Add more reliable connection tests.
2016-10-29 15:34:51 -07:00
Karl Burtram
6cdaa6e808 Add more test cases for code coverage (#127)
Next round of code coverage test cases.  Please review the commit for next iteration.

* Add connection retry tests

* More test coverage

* Update diagnostics end-to-end test
2016-10-29 12:10:02 -07:00
Karl Burtram
f46fc0c787 Add additional test cases (#125)
Test-only changes for code coverage.  Please review the comment and I'll include the changes in the next iteration.

* Add more tests

* Add some more additional test cases
2016-10-28 20:33:32 -07:00
Sharon Ravindran
931235c604 Refactor error messages (#122) 2016-10-28 12:26:31 -07:00
Karl Burtram
9bd5839812 Add end-to-end language service tests. (#123)
Test-only code coverage changes.  Please review the commit and I'll follow-up on next iteration.
2016-10-28 01:04:48 -07:00
Karl Burtram
6b589f45bb Fix some typos in code coverage merge. 2016-10-27 19:00:06 -07:00
Karl Burtram
da84ae9f3b Code coverage improvements (#121)
These are test-only changes to improve code coverage so I'll merge directly.  Please review the commit and I'll pickup those changes in the next iteration.

* Add integration test batch file

* Exclude Linux and MacOS from Windows code coverage builds

* Enable code coverage for test driver e2e tests

* Use the windows only build for code coverage runs
2016-10-27 18:18:31 -07:00
Karl Burtram
d42a92dd94 Test fixes to enable integration suites 2016-10-26 22:44:21 -07:00
Karl Burtram
b0f7ba4084 Turn on disabled tests in integration suite (#120)
No real code changes, just reenabling disabled tests in integration test runs.
2016-10-27 05:00:14 +00:00
Karl Burtram
4bc490db7c Add switch for setting test build configuration (#119)
This is build config-only so I'm merging to get updated build tonight.
2016-10-27 04:32:57 +00:00
Mitchell Sternke
67d1d800a3 Test driver improvements (#117)
* Refactored the test driver to work with xunit in addition to the command line

* Fix behavior of property
2016-10-25 17:16:33 -07:00
Leila Lali
cac3ae5eeb changing the setting namespace (#116) 2016-10-25 17:09:42 -07:00
Sharon Ravindran
2a688cb87f Make save result async (#107)
* Make save results asynchronous

* Prevent write share of file

* Lock objects in stages

* Create Save result objects

* refactor and write rows in batches

* CHange batchSize from test value

* Remove await in handler

* Removing the file reader as a member of the resultset

* Change Dispose to wait for save

* Change concurrentBag

* PascalCase variables

* Modify function signature and tests

* Safe file methods

* refactor ResultSets to Ilist and remove ToList

* Change dictionary key and prevent add to saveTasks during dispose

* Simplify row concatenation

* Fix prevent add

* Fix prevent add

* Add methods to expose saveTasks and isBeingDisposed
2016-10-21 20:07:21 -07:00
Mitchell Sternke
b389d275a2 Added test driver program for service host (#113)
* Added test driver program for service host

* Fix typo
2016-10-21 17:49:37 -07:00
Karl Burtram
854a6a0eca Switch back to event from locks to fix blocking issues. (#111) 2016-10-21 15:46:33 -07:00
Mitchell Sternke
f35b9fda27 Added option --enable-logging to enable diagnostic logging (#106)
* Added option --enable-logging to enable diagnostic logging

* Addressing feedback

* Addressing feedback, round 2
2016-10-20 17:56:33 -07:00
Karl Burtram
fd7a2a5748 Bump SMO to 140.1.9 (#108)
version bump only
2016-10-20 14:57:40 -07:00
Benjamin Russell
2721de1de7 Fixing a broken unit test (#98) 2016-10-19 14:52:05 -07:00
Benjamin Russell
11ca99f419 Handling NOCOUNT being set (#96)
After much thinking, this change brings the message behavior into line with SSMS, including if the NOCOUNT is set. This is a somewhat non-obvious solution, but the StatementCompleted event handler will only be fired if there is a record count to return. We'll add the message for number of records if the StatementCompleted event is fired, otherwise we won't add any messages while processing the resultsets of the batch. If any messages are returned from the server, we'll capture those. Then, if at the end of the batch, we haven't collected any messages from StatementCompleted events or server messages, then we'll add the "completed successfully" message.
This matches behavior of SSMS that will only emit a "completed successfully" message if there were no other messages for the batch.

* Solution to issue, some unit tests needed to be tweaked

* Comments for the event handler
2016-10-19 11:10:13 -07:00
Mitchell Sternke
a3335708c6 Feature/reliable connection tests (#102)
* Ported ReliableConnectionTests from DacFx and added a few more tests

* Fix style

* Created integration tests configuration and fixed minor test issue
2016-10-18 12:19:16 -07:00
Karl Burtram
c05dcbbc75 Use private SqlClient to fix UDT issue (#99)
This is only a version bump so I'm going to merge now to try and make Monday's build.
2016-10-15 22:35:34 -07:00
Karl Burtram
2f876714ed Disable test causing failures in lab builds (#93) 2016-10-12 19:58:04 -07:00
Karl Burtram
c5f44ccee1 Switch from events to locks during parsing (#87)
* Switch from event to locks in binding.

* Remove unneeded null check.
2016-10-12 15:09:24 -07:00
Mitchell Sternke
9f39ac6014 Feature/sql exception bug check (#90)
* Added test for OSX/Linux to check for the SqlException error code bug in .NET core

* fix style

* closed summary
2016-10-12 14:00:33 -07:00
Benjamin Russell
60edcc3057 Make query execution truly asynchronous (#83)
The two main changes in this pull request:
Launching query execution as an asynchronous task that performs a callback upon completion or failure of a query. (Which also sets us up for callbacks progressive results)
Moving away from using the Result of a query execution to return an error. Instead we'll use an error event to return an error
Additionally, some nice refactoring and cleaning up of the unit tests to take advantage of the cool RequestContext mock tooling by @kevcunnane

* Initial commit of refactor to run execution truely asynchronously

* Moving the storage of the task into Query class

Callbacks for completion of a query and failure of a query are setup as
events in the Query class. This actually sets us up for a very nice
framework for adding batch and resultset completion callbacks.

However, this also exposes a problem with cancelling queries and returning
errors -- we don't properly handle errors during execution of a query
(aside from DB errors).

* Wrapping things up in order to submit for code review

* Adding fixes as per comments
2016-10-11 10:51:52 -07:00
Karl Burtram
f32b0290bb Remove extra level of tasks in binding queue (#79)
* Remove extra layer of tasks in binding queue

* Change order of assigning result to avoid race condition

* Add timeout log for the metadata lock event

* Fix test cases
2016-10-08 00:06:35 +00:00
Karl Burtram
c6a2568075 Fix an issue with queue deadlocks causing test failures (#77) 2016-10-05 20:35:57 -04:00
Mitchell Sternke
8408bc6dff Feature/connect cancel (#74)
* Implemented connection cancellation

* Made connect requests return immediately and created a separate connection complete notification

* Fix spelling

* Fix sorting

* Add separate lock for cancellation source map
2016-10-04 15:45:52 -07:00
Karl Burtram
62525b9c98 Add IntelliSense binding queue (#73)
* Initial code for binding queue

* Fix-up some of the timeout wait code

* Add some initial test code

* Add missing test file

* Update the binding queue tests

* Add more test coverage and refactor a bit.  Disable reliabile connection until we can fix it..it's holding an open data reader connection.

* A few more test updates

* Initial integrate queue with language service.

* Hook up the connected binding queue into al binding calls.

* Cleanup comments and remove dead code

* More missing comments

* Fix build break.  Reenable ReliabileConnection.

* Revert all changes to SqlConnectionFactory

* Resolve merge conflicts

* Cleanup some more of the timeouts and sync code

* Address code review feedback

* Address more code review feedback
2016-10-04 14:55:59 -07:00
Benjamin Russell
1b8e9c1e86 Lingering File Handles (#71)
Fixing a bug where in various situations, the files used for temporary storage of query results would be leftover. In particular, the following changes were made:
* When the dispose query request is submitted, the corresponding query is now disposed in addition from being removed from the list of active queries
* When a query is cancelled, it is disposed after it is cancelled
* If a query already exists for a given ownerURI, the existing query is disposed before creating a new query
* All queries are disposed when the query execution service is disposed (ie, at shutdown of the service)

A unit test to verify the action of the dispose method for a ResultSet was added.

* Ensuring queries are disposed

Adding logic to dispose any queries when:
* URI that already has a query executes another query
* A request to dispose a query is submitted
* A request to cancel a query is submitted

* Small tweaks for cleanup of query execution service
2016-10-03 11:35:58 -07:00
Karl Burtram
f16d0104d0 Bump SMO to 14.0.7 to pick Batchparser updates (#72)
...bumping versions.  No review needed.
2016-09-30 15:50:38 -07:00
Sharon Ravindran
20b64eadbf Feature/save selection (#64)
* Save selection

* Add tests

* Change filename in test

* Code cleanup

* Refactor handler

* Code cleanup

* Modify tests to have query selection

* Change variable declaration
2016-09-30 13:48:37 -07:00
Anthony Dresser
d451447ebc Feature/timestamp messages (#68)
* added support for timestamps

* fixed tests

* Moved message class to own file; added 'z' to end of date strings

* added default time constructor

* removed unnecessary z

* added time string format info in comment

* changed from utc time to using local time
2016-09-30 11:46:32 -07:00
Karl Burtram
3777cceb57 Enable Quick Info hover tooltips (#65)
Pushing to include in tomorrow's partner release build.  Please send me any feedback and I'll address in the next Intellisense PR.
2016-09-26 20:11:26 -07:00
Karl Burtram
8b6e15a43b Bump SMO to 140.1.6 to pick up perf fixes (#69) 2016-09-26 16:21:00 -07:00
Brian O'Neill
57278d9322 Do not use ReliableCommand in the query execution service (#66)
* Do not use ReliableCommand in the query execution service.

* Fixing the logic to remove InfoMessage handlers from ReliableSqlConnection

* Adding test to query UDT
2016-09-26 15:42:48 -07:00
Karl Burtram
5a198e3f45 Remove task.wait from test to avoid break on build machine. (#67)
This is to fix test breaks so I'll merge now.  Please let me know if there are comments on this commit.
2016-09-26 10:29:49 -07:00