| package extract |
| |
| import ( |
| "testing" |
| |
| "github.com/stretchr/testify/assert" |
| ) |
| |
| // testCode is fragments of C++ code we should be able to extract |
| // comments from, and some others we shouldn't. |
| const testCode = ` |
| |
| /* |
| * Copyright 2015 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| DEF_SIMPLE_GM(gamma, canvas, 560, 200) { |
| } |
| |
| |
| // This GM renders correctly in 8888, but fails in PDF |
| DEF_SIMPLE_GM(fadefilter, canvas, 256, 256) { |
| SkScalar matrix[20] = { 1, 0, 0, 0, 128.0f, |
| 0, 1, 0, 0, 128.0f, |
| 0, 0, 1, 0, 128.0f, |
| |
| |
| |
| // should draw only green |
| DEF_SIMPLE_GM(small_color_stop, canvas, 100, 150) { |
| SkColor colors[] = { SK_ColorGREEN, SK_ColorRED, SK_ColorYELLOW }; |
| SkScalar pos[] = { 0, 0.003f, SK_Scalar1 }; // 0.004f makes this work |
| SkPoint c0 = { 200, 25 }; |
| SkScalar r0 = 20; |
| SkPoint c1 = { 200, 25 }; |
| |
| |
| /* |
| * Exercise duplicate color-stops, at the ends, and in the middle |
| * |
| * At the time of this writing, only Linear correctly deals with duplicates at the ends, |
| * and then only correctly on CPU backend. |
| */ |
| DEF_SIMPLE_GM(gradients_dup_color_stops, canvas, 704, 564) { |
| const SkColor preColor = 0xFFFF0000; // clamp color before start |
| const SkColor postColor = 0xFF0000FF; // clamp color after end |
| const SkColor color0 = 0xFF000000; |
| |
| |
| DEF_SIMPLE_GM(gradients_dup_color_ignored, canvas, 704, 564) { |
| const SkColor preColor = 0xFFFF0000; |
| |
| |
| // Stray comments shouldn't match. |
| |
| |
| // A blank line should also not match. |
| |
| DEF_SIMPLE_GM(gradients_dup_color_spaced out, canvas, 704, 564) { |
| const SkColor preColor = 0xFFFF0000; |
| |
| |
| |
| // Multiple lines |
| // should be concatenated |
| // into a single comment. |
| DEF_SIMPLE_GM(test_multiple_single_line_comments, canvas, 704, 564) { |
| |
| |
| // Names include 0-9. |
| // |
| DEF_SIMPLE_GM(blur2rects, canvas, 700, 500) { |
| SkPaint paint; |
| |
| /* Begin and end comment on the same line. */ |
| DEF_SIMPLE_GM(arccirclegap, canvas, 250, 250) { |
| ` |
| |
| func TestExtract(t *testing.T) { |
| gms := Extract(testCode, "filename.cpp") |
| assert.Equal(t, 7, len(gms)) |
| |
| assert.Equal(t, "gamma", gms[0].Name) |
| assert.Equal(t, 8, gms[0].Line) |
| assert.Equal(t, "filename.cpp", gms[0].Filename) |
| assert.Equal(t, "fadefilter", gms[1].Name) |
| assert.Equal(t, "small_color_stop", gms[2].Name) |
| assert.Equal(t, "gradients_dup_color_stops", gms[3].Name) |
| assert.Equal(t, "test_multiple_single_line_comments", gms[4].Name) |
| assert.Equal(t, "blur2rects", gms[5].Name) |
| assert.Equal(t, "arccirclegap", gms[6].Name) |
| assert.Equal(t, 67, gms[6].Line) |
| assert.Equal(t, "filename.cpp", gms[6].Filename) |
| |
| assert.Equal(t, " should draw only green", gms[2].Comment) |
| assert.Equal(t, " Multiple lines\n should be concatenated\n into a single comment.", gms[4].Comment) |
| } |