Port bootstrap script length limit
This commit is contained in:
parent
9870c94007
commit
e02ba7f389
@ -56,12 +56,6 @@ print(' '.join(map(str, buf)))'''), lines=13, cols=77)
|
|||||||
t('ssh --kitten=one -p 12 --kitten two -ix main', identity_file='x', port=12, extra_args=(('--kitten', 'one'), ('--kitten', 'two')))
|
t('ssh --kitten=one -p 12 --kitten two -ix main', identity_file='x', port=12, extra_args=(('--kitten', 'one'), ('--kitten', 'two')))
|
||||||
self.assertTrue(runtime_dir())
|
self.assertTrue(runtime_dir())
|
||||||
|
|
||||||
def test_ssh_bootstrap_sh_cmd_limit(self):
|
|
||||||
# dropbear has a 9000 bytes maximum command length limit
|
|
||||||
sh_script, _, _ = bootstrap_script(SSHOptions({'interpreter': 'sh'}), script_type='sh', remote_args=[], request_id='123-123')
|
|
||||||
rcmd = wrap_bootstrap_script(sh_script, 'sh')
|
|
||||||
self.assertLessEqual(sum(len(x) for x in rcmd), 9000)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@lru_cache()
|
@lru_cache()
|
||||||
def all_possible_sh(self):
|
def all_possible_sh(self):
|
||||||
|
|||||||
@ -27,12 +27,12 @@ func TestSSHConfigParsing(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
actual := c.final_env_instructions(for_python, func(key string) (string, bool) {
|
actual := final_env_instructions(for_python, func(key string) (string, bool) {
|
||||||
if key == "LOCAL_ENV" {
|
if key == "LOCAL_ENV" {
|
||||||
return "LOCAL_VAL", true
|
return "LOCAL_VAL", true
|
||||||
}
|
}
|
||||||
return "", false
|
return "", false
|
||||||
})
|
}, c.Env...)
|
||||||
if expected_env == nil {
|
if expected_env == nil {
|
||||||
expected_env = []string{}
|
expected_env = []string{}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,3 +37,25 @@ func TestCloneEnv(t *testing.T) {
|
|||||||
t.Fatalf("Failed to deserialize env\n%s", diff)
|
t.Fatalf("Failed to deserialize env\n%s", diff)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func basic_connection_data() *connection_data {
|
||||||
|
return &connection_data{
|
||||||
|
script_type: "sh", request_id: "123-123", remote_args: []string{}, host_opts: NewConfig(),
|
||||||
|
username: "testuser", hostname_for_match: "host.test",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSSHBootstrapScriptLimit(t *testing.T) {
|
||||||
|
cd := basic_connection_data()
|
||||||
|
err := get_remote_command(cd)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
total := 0
|
||||||
|
for _, x := range cd.rcmd {
|
||||||
|
total += len(x)
|
||||||
|
}
|
||||||
|
if total > 9000 {
|
||||||
|
t.Fatalf("Bootstrap script too large: %d bytes", total)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user