| // Copyright 2015 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package swift |
| |
| import "testing" |
| |
| func TestDoc(t *testing.T) { |
| tests := []struct { |
| Name string |
| Doc string |
| Suffix string |
| Want string |
| }{ |
| {"Empty", "", "", ""}, |
| {"Basic", "// Package signature defines types representing interface and method signatures.\n", "", |
| "/// Package signature defines types representing interface and method signatures.\n"}, |
| {"New line required", "// a", "", ""}, |
| {"Empty comment is ignored", "//\n", "", ""}, |
| {"Single-line whitespace only comment is ignored", "// \n", "", ""}, |
| {"Multi-line whitespace only comment is ignored", "// \n// \n", "", ""}, |
| {"Empty comment line is respected", "// a\n//\n// b\n", "", "/// a\n///\n/// b\n"}, |
| {"Multiline respected", "// a\n// b\n", "", "/// a\n/// b\n"}, |
| {"Whitespace preserved", "// a\n//b\n", "", "/// a\n///b\n"}, |
| {"Non-commments ignored", "a\n", "", ""}, |
| {"Suffix is exchangable", "", "// a\n", "/// a\n"}, |
| {"Suffix is used", "// a\n", "// a suffix\n", "/// a\n/// a suffix\n"}, |
| {"Just VDL's // is supported", "/* a */\n", "", ""}, |
| {"/// goes to ////", "///\n", "", "////\n"}, |
| } |
| for _, test := range tests { |
| if got, want := swiftDoc(test.Doc, test.Suffix), test.Want; got != want { |
| t.Errorf("%s\n GOT %s\nWANT %s", test.Name, got, want) |
| } |
| } |
| } |