Merge "Require scl files in ExecutionModeScl" into main

This commit is contained in:
Treehugger Robot
2023-11-13 21:39:12 +00:00
committed by Gerrit Code Review
2 changed files with 6 additions and 4 deletions

View File

@@ -24,7 +24,6 @@ import (
"strings" "strings"
"go.starlark.net/starlark" "go.starlark.net/starlark"
"go.starlark.net/starlarkjson"
"go.starlark.net/starlarkstruct" "go.starlark.net/starlarkstruct"
) )
@@ -60,7 +59,6 @@ var rbcBuiltins starlark.StringDict = starlark.StringDict{
var sclBuiltins starlark.StringDict = starlark.StringDict{ var sclBuiltins starlark.StringDict = starlark.StringDict{
"struct": starlark.NewBuiltin("struct", starlarkstruct.Make), "struct": starlark.NewBuiltin("struct", starlarkstruct.Make),
"json": starlarkjson.Module,
} }
func isSymlink(filepath string) (bool, error) { func isSymlink(filepath string) (bool, error) {
@@ -389,6 +387,10 @@ func Run(filename string, src interface{}, mode ExecutionMode, allowExternalEntr
return nil, nil, err return nil, nil, err
} }
if mode == ExecutionModeScl && !strings.HasSuffix(filename, ".scl") {
return nil, nil, fmt.Errorf("filename must end in .scl: %s", filename)
}
// Add top-level file to cache for cycle detection purposes // Add top-level file to cache for cycle detection purposes
moduleCache[filename] = nil moduleCache[filename] = nil

View File

@@ -143,7 +143,7 @@ func TestBzlLoadsScl(t *testing.T) {
if err := os.Chdir(filepath.Dir(dir)); err != nil { if err := os.Chdir(filepath.Dir(dir)); err != nil {
t.Fatal(err) t.Fatal(err)
} }
vars, _, err := Run("testdata/bzl_loads_scl.bzl", nil, ExecutionModeScl, false) vars, _, err := Run("testdata/bzl_loads_scl.bzl", nil, ExecutionModeRbc, false)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@@ -160,7 +160,7 @@ func TestNonEntrypointBzlLoadsScl(t *testing.T) {
if err := os.Chdir(filepath.Dir(dir)); err != nil { if err := os.Chdir(filepath.Dir(dir)); err != nil {
t.Fatal(err) t.Fatal(err)
} }
vars, _, err := Run("testdata/bzl_loads_scl_2.bzl", nil, ExecutionModeScl, false) vars, _, err := Run("testdata/bzl_loads_scl_2.bzl", nil, ExecutionModeRbc, false)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }