Commit graph

18 commits

Author SHA1 Message Date
Nick Thomas
61f948baed Upgrade the re2 gem to 1.1.0 2017-07-24 11:03:37 +01:00
Nick Thomas
4bda5b502d Short-circuit build coverage extraction for empty regexes 2017-07-22 07:12:19 +01:00
Nick Thomas
000ddc96c5 Fix the gcovr coverage regex by removing line separators before scanning
RE2 differs from Ruby in handling multiple-line strings. The string "foo\n"
will not match the regular expression "foo$" unless multi-line mode is enabled
(and it's off by default).

Since we're already scanning the build trace line by line (and so multi-line
coverage regular expressions won't work), we can fix this by removing the line
separator before scanning the string.
2017-07-21 22:08:23 +01:00
Douwe Maan
ba60d4f6e4 Merge branch '24570-use-re2-for-user-supplied-regexp-9-3' into 'security-9-3'
24570 use re2 for user supplied regexp 9 3

See merge request !2129
2017-07-19 22:28:41 -05:00
Shinya Maeda
a6f6056c62 Use force_encoding when regex contains UTF-8 char 2017-05-24 20:10:14 +09:00
Shinya Maeda
b9950c22b3 Use each_line. Avoid comparison of partial. Add UTF-8 spec. 2017-05-24 20:10:14 +09:00
Shinya Maeda
3d11b7d8e2 Fix reverse_line from chunk based 2017-05-24 20:10:14 +09:00
Shinya Maeda
a1cddf051e Reproduced 2017-05-24 20:10:14 +09:00
Lin Jen-Shin
b07da07c82 Just enforce the output encoding for Ansi2html
Fixes https://sentry.gitlap.com/gitlab/gitlabcom/issues/27545/
2017-04-18 17:12:06 +08:00
Lin Jen-Shin
9350b9064c Set the encoding in c'tor and explain why it's fine 2017-04-17 17:52:15 +08:00
Lin Jen-Shin
f05ab97e1e Restore nil for stream 2017-04-17 17:12:43 +08:00
Lin Jen-Shin
e7d3fe44f6 Only set the encoding before passing to Ansi2html 2017-04-17 17:10:41 +08:00
Lin Jen-Shin
c26b126502 Make sure @stream.each_line would tag Encoding.default_external 2017-04-17 15:53:09 +08:00
Lin Jen-Shin
ee3b0c3a9a Make sure we're giving Encoding.default_external 2017-04-17 14:30:42 +08:00
Lin Jen-Shin
0a3c98a7e3 Update tests for the fact that we would skip one line 2017-04-13 22:23:12 +08:00
Lin Jen-Shin
faa5dffbcc After Trace#limit, we seek to the next line in case
of breaking ANSI sequence or Unicode
2017-04-13 21:44:26 +08:00
Z.J. van de Weg
23fbbe0c92 Return nil as coverage instead of a File object
Given a valid pipeline job, and a regex which wouldn't match to a jobs
trace, the stream of the trace would return the File object. This was
not the case when it matched a value, as that would have been return
from the block.

Now the `extract_coverage` method returns `nil` if no match was found.
2017-04-12 12:03:39 +02:00
Kamil Trzciński
828d81ee1f Optimise trace handling code to use streaming instead of full read 2017-04-06 16:20:27 +00:00