Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87202337 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Remove unneeded rbcrun features"

parents db4bd944 a874f88c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -256,7 +256,7 @@ else
  endif

  $(shell build/soong/scripts/update_out $(OUT_DIR)/rbc/rbc_board_config_results.mk \
    $(OUT_DIR)/rbcrun RBC_OUT="make" $(OUT_DIR)/rbc/boardlauncher.rbc)
    $(OUT_DIR)/rbcrun $(OUT_DIR)/rbc/boardlauncher.rbc)
  ifneq ($(.SHELLSTATUS),0)
    $(error board configuration runner failed: $(.SHELLSTATUS))
  endif
+1 −1
Original line number Diff line number Diff line
@@ -247,7 +247,7 @@ else
  endif

  $(shell build/soong/scripts/update_out $(OUT_DIR)/rbc/rbc_product_config_results.mk \
    $(OUT_DIR)/rbcrun RBC_OUT="make,global" $(OUT_DIR)/rbc/launcher.rbc)
    $(OUT_DIR)/rbcrun $(OUT_DIR)/rbc/launcher.rbc)
  ifneq ($(.SHELLSTATUS),0)
    $(error product configuration runner failed: $(.SHELLSTATUS))
  endif
+16 −66
Original line number Diff line number Diff line
@@ -54,11 +54,6 @@ def __print_attr(attr, value):
    if value == None:
        return
    if type(value) == "list":
        if _options.rearrange:
            value = __printvars_rearrange_list(value)
        if _options.format == "pretty":
            print(attr, "=", repr(value))
        elif _options.format == "make":
        value = list(value)
        for i, x in enumerate(value):
            if type(x) == "tuple" and len(x) == 1:
@@ -66,13 +61,9 @@ def __print_attr(attr, value):
            elif type(x) != "string":
                fail("Wasn't a list of strings:", attr, " value:", value)
        print(attr, ":=", " ".join(value))
    elif _options.format == "pretty":
        print(attr, "=", repr(value))
    elif _options.format == "make":
    else:
        # Trim all spacing to a single space
        print(attr, ":=", _mkstrip(value))
    else:
        fail("bad output format", _options.format)

def _printvars(state):
    """Prints configuration and global variables."""
@@ -83,7 +74,6 @@ def _printvars(state):
            for nsname, nsvars in sorted(val.items()):
                # Define SOONG_CONFIG_<ns> for Make, othewise
                # it cannot be added to .KATI_READONLY list
                if _options.format == "make":
                print("SOONG_CONFIG_" + nsname, ":=", " ".join(nsvars.keys()))
                for var, val in sorted(nsvars.items()):
                    if val:
@@ -105,11 +95,6 @@ def _printvars(state):
        elif attr not in globals_base or globals_base[attr] != val:
            __print_attr(attr, val)

def __printvars_rearrange_list(value_list):
    """Rearrange value list: return only distinct elements, maybe sorted."""
    seen = {item: 0 for item in value_list}
    return sorted(seen.keys()) if _options.rearrange == "sort" else seen.keys()

def __sort_pcm_names(pcm_names):
    # We have to add an extension back onto the pcm names when sorting,
    # or else the sort order could be wrong when one is a prefix of another.
@@ -695,17 +680,9 @@ def _mkwarning(file, message = ""):
    rblf_log(file, "warning", message, sep = ':')

def _mk2rbc_error(loc, message):
    """Prints a message about conversion error and stops.

    If RBC_MK2RBC_CONTINUE environment variable is set,
    the execution will continue after the message is printed.
    """
    if _options.mk2rbc_continue:
        rblf_log(loc, message, sep = ':')
    else:
    """Prints a message about conversion error and stops."""
    _mkerror(loc, message)


def _mkinfo(file, message = ""):
    """Prints info."""
    rblf_log(message)
@@ -877,39 +854,12 @@ def _clear_var_list(g, h, var_list):
            # Cause the variable to appear set like the make version does
            g[v] = ""


def __get_options():
    """Returns struct containing runtime global settings."""
    settings = dict(
        format = "pretty",
        rearrange = "",
# Settings used during debugging.
_options = struct(
    trace_modules = False,
    trace_variables = [],
        mk2rbc_continue = False,
)
    for x in getattr(rblf_cli, "RBC_OUT", "").split(","):
        if x == "sort" or x == "unique":
            if settings["rearrange"]:
                fail("RBC_OUT: either sort or unique is allowed (and sort implies unique)")
            settings["rearrange"] = x
        elif x == "pretty" or x == "make":
            settings["format"] = x
        elif x == "global":
            # TODO: Remove this, kept for backwards compatibility
            pass
        elif x != "":
            fail("RBC_OUT: got %s, should be one of: [pretty|make] [sort|unique]" % x)
    for x in getattr(rblf_cli, "RBC_DEBUG", "").split(","):
        if x == "!trace":
            settings["trace_modules"] = True
        elif x != "":
            settings["trace_variables"].append(x)
    if getattr(rblf_cli, "RBC_MK2RBC_CONTINUE", ""):
        settings["mk2rbc_continue"] = True
    return struct(**settings)

# Settings used during debugging.
_options = __get_options()
rblf = struct(
    soong_config_namespace = _soong_config_namespace,
    soong_config_append = _soong_config_append,
+3 −18
Original line number Diff line number Diff line
@@ -223,16 +223,6 @@ func makeStringList(items []string) *starlark.List {
	return starlark.NewList(elems)
}

// propsetFromEnv constructs a propset from the array of KEY=value strings
func structFromEnv(env []string) *starlarkstruct.Struct {
	sd := make(map[string]starlark.Value, len(env))
	for _, x := range env {
		kv := strings.SplitN(x, "=", 2)
		sd[kv[0]] = starlark.String(kv[1])
	}
	return starlarkstruct.FromStringDict(starlarkstruct.Default, sd)
}

func log(thread *starlark.Thread, fn *starlark.Builtin, args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error) {
	sep := " "
	if err := starlark.UnpackArgs("print", nil, kwargs, "sep?", &sep); err != nil {
@@ -255,12 +245,10 @@ func log(thread *starlark.Thread, fn *starlark.Builtin, args starlark.Tuple, kwa
	return starlark.None, nil
}

func setup(env []string) {
func setup() {
	// Create the symbols that aid makefile conversion. See README.md
	builtins = starlark.StringDict{
		"struct":   starlark.NewBuiltin("struct", starlarkstruct.Make),
		"rblf_cli": structFromEnv(env),
		"rblf_env": structFromEnv(os.Environ()),
		// To convert find-copy-subdir and product-copy-files-by pattern
		"rblf_find_files": starlark.NewBuiltin("rblf_find_files", find),
		// To convert makefile's $(shell cmd)
@@ -285,11 +273,8 @@ func setup(env []string) {
//   and the name that appears in error messages;
// * src is an optional source of bytes to use instead of filename
//   (it can be a string, or a byte array, or an io.Reader instance)
// * commandVars is an array of "VAR=value" items. They are accessible from
//   the starlark script as members of the `rblf_cli` propset.
func Run(filename string, src interface{}, commandVars []string) error {
	setup(commandVars)

func Run(filename string, src interface{}) error {
	setup()
	mainThread := &starlark.Thread{
		Name:  "main",
		Print: func(_ *starlark.Thread, msg string) { fmt.Println(msg) },
+8 −26
Original line number Diff line number Diff line
@@ -53,8 +53,8 @@ func starlarktestSetup() {
}

// Common setup for the tests: create thread, change to the test directory
func testSetup(t *testing.T, env []string) *starlark.Thread {
	setup(env)
func testSetup(t *testing.T) *starlark.Thread {
	setup()
	thread := &starlark.Thread{
		Load: func(thread *starlark.Thread, module string) (starlark.StringDict, error) {
			if module == "assert.star" {
@@ -72,14 +72,16 @@ func testSetup(t *testing.T, env []string) *starlark.Thread {
func dataDir() string {
	_, thisSrcFile, _, _ := runtime.Caller(0)
	return filepath.Join(filepath.Dir(thisSrcFile), "testdata")

}

func exerciseStarlarkTestFile(t *testing.T, starFile string) {
	// In order to use "assert.star" from go/starlark.net/starlarktest in the tests, provide:
	//  * load function that handles "assert.star"
	//  * starlarktest.DataFile function that finds its location
	setup(nil)
	setup()
	if err := os.Chdir(dataDir()); err != nil {
		t.Fatal(err)
	}
	thread := &starlark.Thread{
		Load: func(thread *starlark.Thread, module string) (starlark.StringDict, error) {
			if module == "assert.star" {
@@ -98,26 +100,9 @@ func exerciseStarlarkTestFile(t *testing.T, starFile string) {
	}
}

func TestCliAndEnv(t *testing.T) {
	// TODO(asmundak): convert this to use exerciseStarlarkTestFile
	if err := os.Setenv("TEST_ENVIRONMENT_FOO", "test_environment_foo"); err != nil {
		t.Fatal(err)
	}
	thread := testSetup(t, []string{"CLI_FOO=foo"})
	if _, err := starlark.ExecFile(thread, "cli_and_env.star", nil, builtins); err != nil {
		if err, ok := err.(*starlark.EvalError); ok {
			t.Fatal(err.Backtrace())
		}
		t.Fatal(err)
	}
}

func TestFileOps(t *testing.T) {
	// TODO(asmundak): convert this to use exerciseStarlarkTestFile
	if err := os.Setenv("TEST_DATA_DIR", dataDir()); err != nil {
		t.Fatal(err)
	}
	thread := testSetup(t, nil)
	thread := testSetup(t)
	if _, err := starlark.ExecFile(thread, "file_ops.star", nil, builtins); err != nil {
		if err, ok := err.(*starlark.EvalError); ok {
			t.Fatal(err.Backtrace())
@@ -128,7 +113,7 @@ func TestFileOps(t *testing.T) {

func TestLoad(t *testing.T) {
	// TODO(asmundak): convert this to use exerciseStarlarkTestFile
	thread := testSetup(t, nil)
	thread := testSetup(t)
	thread.Load = func(thread *starlark.Thread, module string) (starlark.StringDict, error) {
		if module == "assert.star" {
			return starlarktest.LoadAssertModule()
@@ -148,8 +133,5 @@ func TestLoad(t *testing.T) {
}

func TestShell(t *testing.T) {
	if err := os.Setenv("TEST_DATA_DIR", dataDir()); err != nil {
		t.Fatal(err)
	}
	exerciseStarlarkTestFile(t, "testdata/shell.star")
}
Loading