Files
swift-mirror/test/SourceKit/CompileNotifications/arg-parsing.swift
David Goldman 10ecea6269 [SourceKit] Fail requests when an error occurs
Previously, requests would fail silently by returning an empty struct
in the response.

With this change, responses will properly report fail with the internal
error.
2019-05-03 11:01:21 -04:00

62 lines
2.8 KiB
Swift

// RUN: not %sourcekitd-test -req=track-compiles == -req=complete %s -offset=0 -- %s -no-such-arg 2>&1 | %FileCheck %s -check-prefix=ARG_PARSE_0
// ARG_PARSE_0: (Request Failed): error: unknown argument: '-no-such-arg'
// ARG_PARSE_0: {
// ARG_PARSE_0: key.notification: source.notification.compile-will-start
// ARG_PARSE_0: key.compileid: [[CID1:".*"]]
// ARG_PARSE_0: key.compilerargs-string: "{{.*}}.swift -no-such-arg"
// ARG_PARSE_0: }
// ARG_PARSE_0: {
// ARG_PARSE_0: key.notification: source.notification.compile-did-finish
// ARG_PARSE_0: key.diagnostics: [
// ARG_PARSE_0: {
// ARG_PARSE_0: key.filepath: "<unknown>",
// ARG_PARSE_0: key.severity: source.diagnostic.severity.error,
// ARG_PARSE_0: key.description: "unknown argument: '-no-such-arg'"
// ARG_PARSE_0: }
// ARG_PARSE_0: ]
// ARG_PARSE_0: key.compileid: [[CID1]]
// ARG_PARSE_0: }
// ARG_PARSE_0-NOT: compile-will-start
// ARG_PARSE_0-NOT: compile-did-finish
// RUN: %sourcekitd-test -req=track-compiles == -req=sema %s -print-raw-response -- %s -no-such-arg | %FileCheck %s -check-prefix=ARG_PARSE_1
// RUN: not %sourcekitd-test -req=track-compiles == -req=cursor -offset=0 %s -- %s -no-such-arg | %FileCheck %s -check-prefix=ARG_PARSE_1
// ARG_PARSE_1: {
// ARG_PARSE_1: key.notification: source.notification.compile-will-start
// ARG_PARSE_1: key.compileid: [[CID1:".*"]]
// ARG_PARSE_1: key.compilerargs-string: "{{.*}}.swift -no-such-arg"
// ARG_PARSE_1: }
// ARG_PARSE_1: {
// ARG_PARSE_1: key.notification: source.notification.compile-did-finish
// ARG_PARSE_1: key.diagnostics: [
// ARG_PARSE_1: {
// ARG_PARSE_1: key.filepath: "<unknown>",
// ARG_PARSE_1: key.severity: source.diagnostic.severity.error,
// ARG_PARSE_1: key.description: "unknown argument: '-no-such-arg'"
// ARG_PARSE_1: }
// ARG_PARSE_1: ]
// ARG_PARSE_1: key.compileid: [[CID1]]
// ARG_PARSE_1: }
// ARG_PARSE_1-NOT: compile-will-start
// ARG_PARSE_1-NOT: compile-did-finish
// %sourcekitd-test -req=track-compiles == -req=complete %s -offset=0 | %FileCheck %s -check-prefix=ARG_PARSE_2
// %sourcekitd-test -req=track-compiles == -req=sema %s -print-raw-response | %FileCheck %s -check-prefix=ARG_PARSE_2
// ARG_PARSE_2: {
// ARG_PARSE_2: key.notification: source.notification.compile-will-start
// ARG_PARSE_2: key.compileid: [[CID1:".*"]]
// ARG_PARSE_2: }
// ARG_PARSE_2: {
// ARG_PARSE_2: key.notification: source.notification.compile-did-finish
// ARG_PARSE_2: key.diagnostics: [
// ARG_PARSE_2: {
// ARG_PARSE_2: key.filepath: "<unknown>",
// ARG_PARSE_2: key.severity: source.diagnostic.severity.error,
// ARG_PARSE_2: key.description: "no input files"
// ARG_PARSE_2: }
// ARG_PARSE_2: ]
// ARG_PARSE_2: key.compileid: [[CID1]]
// ARG_PARSE_2: }
// ARG_PARSE_2-NOT: compile-will-start
// ARG_PARSE_2-NOT: compile-did-finish