summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-02-22 13:33:36 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-02-22 13:33:36 +0100
commitb92ce0ccb68d1dd39a1dd06f4a57979db7299526 (patch)
treec909f69a5b9f3d9d03d9fe1b07e639bf17ad5c8a
parentd532a9cb2fb7d1ff4c1369ec06701edb536d39c1 (diff)
downloadgitlab-ce-b92ce0ccb68d1dd39a1dd06f4a57979db7299526.tar.gz
Rename pipeline expressions statement exception class
-rw-r--r--lib/gitlab/ci/pipeline/expression/lexer.rb2
-rw-r--r--lib/gitlab/ci/pipeline/expression/statement.rb6
-rw-r--r--spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb13
3 files changed, 16 insertions, 5 deletions
diff --git a/lib/gitlab/ci/pipeline/expression/lexer.rb b/lib/gitlab/ci/pipeline/expression/lexer.rb
index 3985e30a768..1536374f0da 100644
--- a/lib/gitlab/ci/pipeline/expression/lexer.rb
+++ b/lib/gitlab/ci/pipeline/expression/lexer.rb
@@ -20,7 +20,7 @@ module Gitlab
def tokenize
MAX_CYCLES.times do
LEXEMES.each do |lexeme|
- @scanner.scan(/\s+/) # ignore whitespace
+ @scanner.skip(/\s+/) # ignore whitespace
lexeme.scan(@scanner).tap do |token|
@tokens.push(token) if token.present?
diff --git a/lib/gitlab/ci/pipeline/expression/statement.rb b/lib/gitlab/ci/pipeline/expression/statement.rb
index 21bd5414467..fabfcd0393d 100644
--- a/lib/gitlab/ci/pipeline/expression/statement.rb
+++ b/lib/gitlab/ci/pipeline/expression/statement.rb
@@ -3,7 +3,7 @@ module Gitlab
module Pipeline
module Expression
class Statement
- ParserError = Class.new(StandardError)
+ StatementError = Class.new(StandardError)
GRAMMAR = [
%w[variable equals string],
@@ -37,10 +37,10 @@ module Gitlab
# a reverse descent parse tree "by hand".
#
def parse_tree
- raise ParserError if lexemes.empty?
+ raise StatementError if lexemes.empty?
unless GRAMMAR.find { |syntax| syntax == lexemes }
- raise ParserError, 'Unknown pipeline expression!'
+ raise StatementError, 'Unknown pipeline expression!'
end
if tokens.many?
diff --git a/spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb b/spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb
index f7695a28ea6..641398d539a 100644
--- a/spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb
+++ b/spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb
@@ -25,10 +25,21 @@ describe Gitlab::Ci::Pipeline::Expression::Statement do
end
describe '#parse_tree' do
+ context 'when expression is empty' do
+ let(:text) { '' }
+
+ it 'raises an error' do
+ expect { subject.parse_tree }
+ .to raise_error described_class::StatementError
+ end
+ end
+
context 'when expression grammar is incorrect' do
+ let(:text) { '$VAR "text"' }
+
it 'raises an error' do
expect { subject.parse_tree }
- .to raise_error described_class::ParserError
+ .to raise_error described_class::StatementError
end
end