More test fixes

This commit is contained in:
Kovid Goyal
2023-02-24 20:09:21 +05:30
parent 22ea33182a
commit dc938cf3dd
3 changed files with 22 additions and 12 deletions

View File

@@ -371,7 +371,7 @@ func (self *ConfigSet) line_handler(key, val string) error {
return c.Parse(key, val)
}
func load_config(hostname_to_match string, username_to_match string, overrides []string, paths ...string) (*Config, error) {
func load_config(hostname_to_match string, username_to_match string, overrides []string, paths ...string) (*Config, []config.ConfigLine, error) {
ans := &ConfigSet{all_configs: []*Config{NewConfig()}}
p := config.ConfigParser{LineHandler: ans.line_handler}
if len(paths) == 0 {
@@ -380,13 +380,13 @@ func load_config(hostname_to_match string, username_to_match string, overrides [
paths = utils.Filter(paths, func(x string) bool { return x != "" })
err := p.ParseFiles(paths...)
if err != nil && !errors.Is(err, fs.ErrNotExist) {
return nil, err
return nil, nil, err
}
if len(overrides) > 0 {
err = p.ParseOverrides(overrides...)
if err != nil {
return nil, err
return nil, nil, err
}
}
return config_for_hostname(hostname_to_match, username_to_match, ans), nil
return config_for_hostname(hostname_to_match, username_to_match, ans), p.BadLines(), nil
}

View File

@@ -532,10 +532,15 @@ func run_ssh(ssh_args, server_args, found_extra_args []string) (rc int, err erro
if err != nil {
return 1, err
}
host_opts, err := load_config(hostname_for_match, uname, overrides)
host_opts, bad_lines, err := load_config(hostname_for_match, uname, overrides)
if err != nil {
return 1, err
}
if len(bad_lines) > 0 {
for _, x := range bad_lines {
fmt.Fprintf(os.Stderr, "Ignoring bad config line: %s:%d with error: %s", filepath.Base(x.Src_file), x.Line_number, x.Err)
}
}
if host_opts.Share_connections {
kpid, err := strconv.Atoi(os.Getenv("KITTY_PID"))
if err != nil {
@@ -646,8 +651,11 @@ func test_integration_with_python(args []string) (rc int, err error) {
username: "testuser", hostname_for_match: "host.test", request_data: true,
test_script: args[0], echo_on: true,
}
opts, err := load_config(cd.hostname_for_match, cd.username, nil, f.Name())
opts, bad_lines, err := load_config(cd.hostname_for_match, cd.username, nil, f.Name())
if err == nil {
if len(bad_lines) > 0 {
return 1, fmt.Errorf("Bad config lines: %s with error: %s", bad_lines[0].Line, bad_lines[0].Err)
}
cd.host_opts = opts
err = get_remote_command(cd)
}