mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-05-03 05:57:25 +00:00
Move the tool as a dependency for static checks migration. Fixes #8187 Signed-off-by: Bin Liu <bin@hyper.sh> Signed-off-by: Chelsea Mafrica <chelsea.e.mafrica@intel.com> Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com> Signed-off-by: Ganesh Maharaj Mahalingam <ganesh.mahalingam@intel.com> Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com> Signed-off-by: Julio Montes <julio.montes@intel.com>
192 lines
3.9 KiB
Go
192 lines
3.9 KiB
Go
//
|
|
// Copyright (c) 2019 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
const (
|
|
testFileMode = os.FileMode(0640)
|
|
testDirMode = os.FileMode(0750)
|
|
readmeName = "README.md"
|
|
)
|
|
|
|
func createFile(file, contents string) error {
|
|
return os.WriteFile(file, []byte(contents), testFileMode)
|
|
}
|
|
|
|
// makeDirs creates two directories below the specified base directory: one is
|
|
// an empty director named emptyDirName and the other is named readmeDirName
|
|
// and contains a markdown file called "README.md".
|
|
func makeDirs(assert *assert.Assertions, baseDir string, readmeDirName, emptyDirName string) {
|
|
readmeDir := filepath.Join(baseDir, readmeDirName)
|
|
err := os.MkdirAll(readmeDir, testDirMode)
|
|
assert.NoError(err)
|
|
|
|
readme := filepath.Join(readmeDir, "README.md")
|
|
|
|
err = createFile(readme, "# hello")
|
|
assert.NoError(err)
|
|
|
|
emptyDir := filepath.Join(baseDir, emptyDirName)
|
|
err = os.MkdirAll(emptyDir, testDirMode)
|
|
assert.NoError(err)
|
|
}
|
|
|
|
func TestDocAddHeading(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
type testData struct {
|
|
heading Heading
|
|
expectError bool
|
|
}
|
|
|
|
data := []testData{
|
|
{Heading{"", "", "", -1}, true},
|
|
{Heading{"Foo", "", "", -1}, true},
|
|
{Heading{"Foo", "", "", 0}, true},
|
|
{Heading{"Foo", "", "", 1}, true},
|
|
{Heading{"Foo", "", "foo", -1}, true},
|
|
{Heading{"Foo", "", "foo", 0}, true},
|
|
|
|
{Heading{"Foo", "", "foo", 1}, false},
|
|
{Heading{"`Foo`", "`Foo`", "foo", 1}, false},
|
|
}
|
|
|
|
logger := logrus.WithField("test", "true")
|
|
|
|
for i, d := range data {
|
|
doc := newDoc("foo", logger)
|
|
|
|
assert.Empty(doc.Headings)
|
|
|
|
msg := fmt.Sprintf("test[%d]: %+v\n", i, d)
|
|
|
|
err := doc.addHeading(d.heading)
|
|
if d.expectError {
|
|
assert.Error(err, msg)
|
|
continue
|
|
}
|
|
|
|
assert.NoError(err, msg)
|
|
assert.NotEmpty(doc.Headings, msg)
|
|
|
|
name := d.heading.Name
|
|
|
|
result, ok := doc.Headings[name]
|
|
assert.True(ok, msg)
|
|
|
|
assert.Equal(d.heading, result, msg)
|
|
}
|
|
}
|
|
|
|
func TestDocAddLink(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
type testData struct {
|
|
link Link
|
|
expectError bool
|
|
}
|
|
|
|
data := []testData{
|
|
{Link{nil, "", "", "", -1}, true},
|
|
{Link{nil, "foo", "", "", unknownLink}, true},
|
|
|
|
{Link{nil, "foo", "", "", internalLink}, false},
|
|
{Link{nil, "http://google.com", "", "", urlLink}, false},
|
|
{Link{nil, "https://google.com", "", "", urlLink}, false},
|
|
{Link{nil, "mailto:me@somewhere.com", "", "", mailLink}, false},
|
|
}
|
|
|
|
logger := logrus.WithField("test", "true")
|
|
|
|
for i, d := range data {
|
|
doc := newDoc("foo", logger)
|
|
|
|
assert.Empty(doc.Links)
|
|
|
|
msg := fmt.Sprintf("test[%d]: %+v\n", i, d)
|
|
|
|
err := doc.addLink(d.link)
|
|
if d.expectError {
|
|
assert.Error(err, msg)
|
|
continue
|
|
}
|
|
|
|
assert.NoError(err, msg)
|
|
assert.NotEmpty(doc.Links, msg)
|
|
addr := d.link.Address
|
|
|
|
result := doc.Links[addr][0]
|
|
assert.Equal(result, d.link)
|
|
}
|
|
}
|
|
|
|
func TestDocLinkAddrToPath(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
dir, err := os.MkdirTemp("", "")
|
|
assert.NoError(err)
|
|
|
|
cwd, err := os.Getwd()
|
|
assert.NoError(err)
|
|
defer os.Chdir(cwd)
|
|
|
|
err = os.Chdir(dir)
|
|
assert.NoError(err)
|
|
defer os.RemoveAll(dir)
|
|
|
|
savedDocRoot := docRoot
|
|
docRoot = dir
|
|
|
|
defer func() {
|
|
docRoot = savedDocRoot
|
|
|
|
}()
|
|
|
|
mdFile := "bar.md"
|
|
mdPath := filepath.Join("/", mdFile)
|
|
actualMDPath := filepath.Join(dir, mdFile)
|
|
|
|
type testData struct {
|
|
linkAddr string
|
|
expectedPath string
|
|
expectError bool
|
|
}
|
|
|
|
data := []testData{
|
|
{"", "", true},
|
|
{"bar", "bar", false},
|
|
{"bar.md", "bar.md", false},
|
|
{mdPath, actualMDPath, false},
|
|
}
|
|
|
|
logger := logrus.WithField("test", "true")
|
|
doc := newDoc("foo", logger)
|
|
|
|
for i, d := range data {
|
|
msg := fmt.Sprintf("test[%d]: %+v\n", i, d)
|
|
|
|
result, err := doc.linkAddrToPath(d.linkAddr)
|
|
|
|
if d.expectError {
|
|
assert.Error(err, msg)
|
|
continue
|
|
}
|
|
|
|
assert.NoError(err, msg)
|
|
assert.Equal(d.expectedPath, result)
|
|
}
|
|
}
|