paulberry@google.com
19572ac352
Use AnalysisServer.running only to track whether server has been shut down.
...
Previously, AnalysisServer.run() and AnalysisServer.performTask() also
tried to use this variable to track whether there was a pending call
to performTask() on the event queue. The resulting confusion
prevented analysis from ever running.
It turns out that we don't need to separately track whether there is a
pending call to performTask(), as long as we enforce the invariant
that there is a pending call to performTask() exactly when
contextWorkQueue is non-empty.
R=brianwilkerson@google.com , danrubel@google.com
Review URL: https://codereview.chromium.org//246603005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35323 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-23 18:35:58 +00:00
paulberry@google.com
451b5519cb
Consistently type check analysis server request parameters.
...
Introduces a class RequestDatum, which wraps request parameters (or
components thereof) and provides type checking and coercion.
RequestDatum also provides an operator[] so that nested parameters can
be type checked and coerced at every level of nesting.
Previously, our checking and coercion was ad-hoc, and as a result some
parameters weren't type checked at all.
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//245113006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35228 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-21 22:21:39 +00:00
paulberry@google.com
0540e6a85b
Eliminate nondeterminism from analysis server unit tests.
...
Previously, we tested for non-responsiveness in the analysis server
using timeout(new Duration(seconds: 1)). This caused sporadic
failures on slower buildbots. Now, we simply let the event loop run
20 times--this should produce consistent results regardless of machine
speed.
R=brianwilkerson@google.com , danrubel@google.com
Review URL: https://codereview.chromium.org//243703008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35221 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-21 19:48:15 +00:00
paulberry@google.com
8fd57e0efa
Disable test "AnalysisServer createContext" again.
...
This is failing on some buildbots. I will investigate next week.
Review URL: https://codereview.chromium.org//243763003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35188 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-18 22:58:48 +00:00
paulberry@google.com
783aca1892
Analysis server context ID is now specified by the client.
...
This allows the client to start sending commands that use the context
immediately, without having to wait for a response to find out the
context ID.
If the client tries to create two contexts with the same ID, that is
an error.
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//243753002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35185 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-18 22:20:53 +00:00
paulberry@google.com
f6ec765421
Fix and re-enable analysis server tests that were commented out.
...
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//243653003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35183 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-18 20:50:23 +00:00
paulberry@google.com
f548643064
Exit stdio-based analysis server when stdin closed.
...
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//235953019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35116 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-16 17:34:35 +00:00
paulberry@google.com
93deb52cd6
Add a message for analysis server to indicate a successful connection.
...
This complements the "server already started" error introduced in
r35046. It's now easy for the client to detect whether a connection
to the server was successful--it simply connects and waits for the
initial message from the server. The message returned on a successful
connection is:
{"event":"server.connected"}
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//239213004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35108 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-16 15:11:35 +00:00
paulberry@google.com
13f0c014d6
Create analysis server ByteStreamServerChannel class.
...
This class serves a parallel role to the existing
WebSocketServerChannel interface, except that it handles exchanging
data with stdio rather than with a WebSocket.
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//238293006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35088 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-15 21:43:00 +00:00
scheglov@google.com
25f3afdb4d
Use mirrors and annotations to find test methods.
...
It was too tiresome to type test method names three times, jumping back and forth
between test class and main earlier this morning. :-)
Also, we had a discussion about tests in the office.
R=brianwilkerson@google.com , danrubel@google.com , pquitslund@google.com
BUG=
Review URL: https://codereview.chromium.org//228013003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35067 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-15 16:34:17 +00:00
paulberry@google.com
33c7e78bb0
Split analysis server's HttpAnalysisServer into two classes.
...
Behaviours of the HttpAnalysisServer which are independent of the
WebSocket transport mechanism have been moved to a new class,
SocketServer, which will also be used when the transport mechanism is
stdio.
GetHander now holds a reference to the SocketServer rather than the
AnalysisServer, so that we don't need to go to extra effort to update
it when the AnalysisServer is created.
R=brianwilkerson@google.com , jwren@google.com
Review URL: https://codereview.chromium.org//237643003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35061 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-15 15:41:09 +00:00
paulberry@google.com
ab56da71ce
Fix race condition with "server already started" error.
...
We can't report the "server already started" error prior to the call
to WebSocketTransformer.upgrade(), because it's possible that a
different client will successfully establish a connection during the
upgrade process. Instead, check after the call to upgrade(). This
means that if there is an error, we have to report it via a
RequestError object rather than using an HTTP error.
When we add stdio as a transport mechanism, this will have the further
advantage of allowing the "server already started" error to be
detected by code that is independent of the transport mechanism.
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//237793002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35046 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-14 22:13:10 +00:00
scheglov@google.com
b8ac1a83a0
Improve analysis_server/protocol.dart test coverage.
...
R=brianwilkerson@google.com , danrubel@google.com
BUG=
Review URL: https://codereview.chromium.org//227713004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34794 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 19:01:10 +00:00
brianwilkerson@google.com
7e7426ae99
Clean-up and progress on analysis server
...
R=danrubel@google.com
Review URL: https://codereview.chromium.org//214933002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34529 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-28 21:26:03 +00:00
danrubel@google.com
b25bbbb5eb
utility for manually running all analysis_server tests
...
BUG=
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//209003005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34522 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-28 20:29:30 +00:00
kevmoo@google.com
1119399bf3
pkg/analysis_server: fixes for unittest deprecations
...
R=danrubel@google.com
Review URL: https://codereview.chromium.org//217153002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34503 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-28 16:10:00 +00:00
danrubel@google.com
faf2c8ddf4
(TBR) simplify check for valid SDK directory
...
BUG=
Review URL: https://codereview.chromium.org//198083004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33618 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-12 21:47:13 +00:00
danrubel@google.com
55e113a629
(TBR) fix path to sdk on Windows
...
BUG=
Review URL: https://codereview.chromium.org//196743004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33610 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-12 20:58:03 +00:00
danrubel@google.com
4a626200be
(TBR) improve error message when fails on bots
...
BUG=
Review URL: https://codereview.chromium.org//196353006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33606 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-12 20:25:12 +00:00
danrubel@google.com
18618a20b3
add sdkPath and enable tests
...
BUG=
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//196993003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33600 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-12 19:18:14 +00:00
danrubel@google.com
20158f95a7
update channel test per comments
...
in https://codereview.chromium.org/185313002
BUG=
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//195463004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33573 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-12 13:33:38 +00:00
brianwilkerson@google.com
e0b6dbb3b6
Add back previously removed tests
...
R=danrubel@google.com
Review URL: https://codereview.chromium.org//191103002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33451 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-07 20:40:52 +00:00
danrubel@google.com
9e21e89d95
gracefully degrade with response to client if fail to access client specified dart sdk
...
+ return response if client specifies inaccessible sdk
+ cleanup JSON encode/decode references
+ cleanup channel close processing
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//187603010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33355 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-05 23:30:45 +00:00
danrubel@google.com
dc1d6bcacf
guard against invalid request id / method
...
BUG=
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//180743020
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33337 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-05 18:40:29 +00:00
danrubel@google.com
2231a169fd
restructure client api to use streams
...
+ restructure client api to use streams for notifications and responses
+ client waits for server shutdown response
+ cleanup channel tests
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//185313002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33330 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-05 15:41:08 +00:00
danrubel@google.com
dbb20f6746
split client and server channels
...
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//182903005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33131 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-27 20:23:37 +00:00
danrubel@google.com
c1c75d48ae
update client to use channel rather than socket
...
BUG=
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org//176873015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33080 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-26 20:11:00 +00:00
brianwilkerson@google.com
238ca64ce9
Server code clean-up
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org//139983004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32466 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-08 15:25:37 +00:00
brianwilkerson@google.com
a9a2021517
Fix test failures
...
Review URL: https://codereview.chromium.org//152893004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32372 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-06 18:01:32 +00:00
brianwilkerson@google.com
8179cbae09
Fix the build
...
Review URL: https://codereview.chromium.org//145033011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31984 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-23 20:22:00 +00:00
brianwilkerson@google.com
8a0bf15dcf
Add server and request handlers
...
Review URL: https://codereview.chromium.org//137703010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31982 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-23 18:50:26 +00:00
brianwilkerson@google.com
fe37bca654
Basic communication protocol for server
...
R=devoncarew@google.com , scheglov@google.com
Review URL: https://codereview.chromium.org//137853026
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31951 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-21 03:20:52 +00:00