- package config_test
-
- import (
- "testing"
-
- "github.com/stretchr/testify/assert"
-
- "gerrit.wikimedia.org/r/blubber/build"
- "gerrit.wikimedia.org/r/blubber/config"
- )
-
- func TestBuilderConfigYAML(t *testing.T) {
- cfg, err := config.ReadYAMLConfig([]byte(`---
- version: v4
- base: foo
- builder:
- command: [make, -f, Makefile, test]
- requirements: [Makefile]
- variants:
- test: {}
- build:
- builder:
- command: [make]
- requirements: []`))
-
- if assert.NoError(t, err) {
- variant, err := config.ExpandVariant(cfg, "test")
-
- if assert.NoError(t, err) {
- assert.Equal(t, []string{"make", "-f", "Makefile", "test"}, variant.Builder.Command)
- assert.Equal(t, []string{"Makefile"}, variant.Builder.Requirements)
- }
-
- variant, err = config.ExpandVariant(cfg, "build")
-
- if assert.NoError(t, err) {
- assert.Equal(t, []string{"make"}, variant.Builder.Command)
- assert.Equal(t, []string{}, variant.Builder.Requirements)
- }
- }
- }
-
- func TestBuilderConfigInstructions(t *testing.T) {
- cfg := config.BuilderConfig{Command: []string{"make", "-f", "Makefile"}}
-
- t.Run("PhasePreInstall", func(t *testing.T) {
- assert.Equal(t,
- []build.Instruction{
- build.Run{
- "make",
- []string{"-f", "Makefile"},
- },
- },
- cfg.InstructionsForPhase(build.PhasePreInstall),
- )
- })
- }
-
- func TestBuilderConfigInstructionsWithRequirements(t *testing.T) {
- cfg := config.BuilderConfig{
- Command: []string{"make", "-f", "Makefile", "foo"},
- Requirements: []string{"Makefile", "foo", "bar/baz"},
- }
-
- t.Run("PhasePreInstall", func(t *testing.T) {
- assert.Equal(t,
- []build.Instruction{
- build.Run{"mkdir -p", []string{"bar/"}},
- build.Copy{[]string{"Makefile", "foo"}, "./"},
- build.Copy{[]string{"bar/baz"}, "bar/"},
- build.Run{
- "make",
- []string{"-f", "Makefile", "foo"},
- },
- },
- cfg.InstructionsForPhase(build.PhasePreInstall),
- )
- })
- }
|