; Test incorrect syntax for -D option is correctly diagnosed.

; Missing equal sign.
RUN: not filechecker -DVALUE10 --input-file %s %s 2>&1 \
RUN:   | filechecker %s --check-prefix ERRCLIEQ1

ERRCLIEQ1: Missing equal sign in command-line definition '-DVALUE10'


; Missing variable name.
RUN: not filechecker -D=10 --input-file %s %s 2>&1 \
RUN:   | filechecker %s --check-prefix ERRCLIVAR1

ERRCLIVAR1: Missing variable name in command-line definition '-D=10'

; Missing variable name.
RUN: not filechecker -D= --input-file %s %s 2>&1 \
RUN:   | filechecker %s --check-prefix ERRCLIVAR2

ERRCLIVAR2: Missing variable name in command-line definition '-D='

; Invalid variable name: starts with a digit.
RUN: not filechecker -D10VALUE=10 --input-file %s %s 2>&1 \
RUN:   | filechecker %s --strict-whitespace --check-prefix ERRCLIFMT

ERRCLIFMT: Global defines:1:19: error: invalid variable name
ERRCLIFMT-NEXT: Global define #1: 10VALUE=10
ERRCLIFMT-NEXT: {{^                  \^$}}

; Invalid definition of pseudo variable.
RUN: not filechecker -D@VALUE=10 --input-file %s %s 2>&1 \
RUN:   | filechecker %s --strict-whitespace --check-prefix ERRCLIPSEUDO

ERRCLIPSEUDO: Global defines:1:19: error: invalid name in string variable definition '@VALUE'
ERRCLIPSEUDO-NEXT: Global define #1: @VALUE=10
ERRCLIPSEUDO-NEXT: {{^                  \^$}}

; Invalid definition of an expression.
RUN: not filechecker -D'VALUE + 2=10' --input-file %s %s 2>&1 \
RUN:   | filechecker %s --strict-whitespace --check-prefix ERRCLITRAIL

ERRCLITRAIL: Global defines:1:19: error: invalid name in string variable definition 'VALUE + 2'
ERRCLITRAIL-NEXT: Global define #1: VALUE + 2=10
ERRCLITRAIL-NEXT: {{^                  \^$}}
