120 lines
3.2 KiB
Go
120 lines
3.2 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"os/exec"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestMetadata(t *testing.T) {
|
|
cmd := exec.Command(
|
|
"metadata", "-rule", "test_spec", "-inputFile", "./inputFiles.txt", "-outputFile",
|
|
"./generatedOutputFile.txt",
|
|
)
|
|
stderr, err := cmd.CombinedOutput()
|
|
if err != nil {
|
|
t.Fatalf("Error running metadata command: %s. Error: %v", stderr, err)
|
|
}
|
|
|
|
// Read the contents of the expected output file
|
|
expectedOutput, err := ioutil.ReadFile("./expectedOutputFile.txt")
|
|
if err != nil {
|
|
t.Fatalf("Error reading expected output file: %s", err)
|
|
}
|
|
|
|
// Read the contents of the generated output file
|
|
generatedOutput, err := ioutil.ReadFile("./generatedOutputFile.txt")
|
|
if err != nil {
|
|
t.Fatalf("Error reading generated output file: %s", err)
|
|
}
|
|
|
|
fmt.Println()
|
|
|
|
// Compare the contents
|
|
if string(expectedOutput) != string(generatedOutput) {
|
|
t.Errorf("Generated file contents do not match the expected output")
|
|
}
|
|
}
|
|
|
|
func TestMetadataNegativeCase(t *testing.T) {
|
|
cmd := exec.Command(
|
|
"metadata", "-rule", "test_spec", "-inputFile", "./inputFilesNegativeCase.txt", "-outputFile",
|
|
"./generatedOutputFileNegativeCase.txt",
|
|
)
|
|
stderr, err := cmd.CombinedOutput()
|
|
if err == nil {
|
|
t.Fatalf(
|
|
"Expected an error, but the metadata command executed successfully. Output: %s",
|
|
stderr,
|
|
)
|
|
}
|
|
|
|
expectedError := "Conflicting trendy team IDs found for java-test-module" +
|
|
"-name-one at:\nAndroid.bp with teamId: 12346," +
|
|
"\nAndroid.bp with teamId: 12345"
|
|
if !strings.Contains(
|
|
strings.TrimSpace(string(stderr)), strings.TrimSpace(expectedError),
|
|
) {
|
|
t.Errorf(
|
|
"Unexpected error message. Expected to contain: %s, Got: %s",
|
|
expectedError, stderr,
|
|
)
|
|
}
|
|
}
|
|
|
|
func TestEmptyInputFile(t *testing.T) {
|
|
cmd := exec.Command(
|
|
"metadata", "-rule", "test_spec", "-inputFile", "./emptyInputFile.txt", "-outputFile",
|
|
"./generatedEmptyOutputFile.txt",
|
|
)
|
|
stderr, err := cmd.CombinedOutput()
|
|
if err != nil {
|
|
t.Fatalf("Error running metadata command: %s. Error: %v", stderr, err)
|
|
}
|
|
|
|
// Read the contents of the generated output file
|
|
generatedOutput, err := ioutil.ReadFile("./generatedEmptyOutputFile.txt")
|
|
if err != nil {
|
|
t.Fatalf("Error reading generated output file: %s", err)
|
|
}
|
|
|
|
fmt.Println()
|
|
|
|
// Compare the contents
|
|
if string(generatedOutput) != "\n" {
|
|
t.Errorf("Generated file contents do not match the expected output")
|
|
}
|
|
}
|
|
|
|
func TestCodeMetadata(t *testing.T) {
|
|
cmd := exec.Command(
|
|
"metadata", "-rule", "code_metadata", "-inputFile", "./inputCodeMetadata.txt", "-outputFile",
|
|
"./generatedCodeMetadataOutputFile.txt",
|
|
)
|
|
stderr, err := cmd.CombinedOutput()
|
|
if err != nil {
|
|
t.Fatalf("Error running metadata command: %s. Error: %v", stderr, err)
|
|
}
|
|
|
|
// Read the contents of the expected output file
|
|
expectedOutput, err := ioutil.ReadFile("./expectedCodeMetadataOutput.txt")
|
|
if err != nil {
|
|
t.Fatalf("Error reading expected output file: %s", err)
|
|
}
|
|
|
|
// Read the contents of the generated output file
|
|
generatedOutput, err := ioutil.ReadFile("./generatedCodeMetadataOutputFile.txt")
|
|
if err != nil {
|
|
t.Fatalf("Error reading generated output file: %s", err)
|
|
}
|
|
|
|
fmt.Println()
|
|
|
|
// Compare the contents
|
|
if string(expectedOutput) != string(generatedOutput) {
|
|
t.Errorf("Generated file contents do not match the expected output")
|
|
}
|
|
}
|