diff options
author | Henning Schild <henning.schild@siemens.com> | 2019-09-03 15:43:46 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-09-16 23:02:43 +0100 |
commit | 7efdf528acb3244dfb4ca0b32182a75296a31f24 (patch) | |
tree | 7160ff2220490fd825e3c4ba4f06bd28b82931bf /meta/lib | |
parent | 49bb6cefb507c116cb2548ae842eb0653053fee4 (diff) | |
download | poky-7efdf528acb3244dfb4ca0b32182a75296a31f24.tar.gz |
oeqa: add case for oe-git-proxy
The escaping, splitting and matching of NO_PROXY in oe-git-proxy
deserves its own testcase, add it.
(From OE-Core rev: c07134711f97c966d70aaf2798800214d5426005)
Signed-off-by: Henning Schild <henning.schild@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r-- | meta/lib/oeqa/selftest/cases/oescripts.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/meta/lib/oeqa/selftest/cases/oescripts.py b/meta/lib/oeqa/selftest/cases/oescripts.py index 7770b66a26..c169885cf3 100644 --- a/meta/lib/oeqa/selftest/cases/oescripts.py +++ b/meta/lib/oeqa/selftest/cases/oescripts.py | |||
@@ -3,10 +3,12 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | import os | 5 | import os |
6 | import shutil | ||
6 | import unittest | 7 | import unittest |
7 | from oeqa.selftest.case import OESelftestTestCase | 8 | from oeqa.selftest.case import OESelftestTestCase |
8 | from oeqa.selftest.cases.buildhistory import BuildhistoryBase | 9 | from oeqa.selftest.cases.buildhistory import BuildhistoryBase |
9 | from oeqa.utils.commands import Command, runCmd, bitbake, get_bb_var, get_test_layer | 10 | from oeqa.utils.commands import Command, runCmd, bitbake, get_bb_var, get_test_layer |
11 | from oeqa.utils import CommandError | ||
10 | 12 | ||
11 | class BuildhistoryDiffTests(BuildhistoryBase): | 13 | class BuildhistoryDiffTests(BuildhistoryBase): |
12 | 14 | ||
@@ -63,3 +65,59 @@ class OEPybootchartguyTests(OEScriptTests): | |||
63 | runCmd('%s/pybootchartgui/pybootchartgui.py %s -o %s/charts -f pdf' % (self.scripts_dir, self.buildstats, self.tmpdir)) | 65 | runCmd('%s/pybootchartgui/pybootchartgui.py %s -o %s/charts -f pdf' % (self.scripts_dir, self.buildstats, self.tmpdir)) |
64 | self.assertTrue(os.path.exists(self.tmpdir + "/charts.pdf")) | 66 | self.assertTrue(os.path.exists(self.tmpdir + "/charts.pdf")) |
65 | 67 | ||
68 | class OEGitproxyTests(OESelftestTestCase): | ||
69 | |||
70 | scripts_dir = os.path.join(get_bb_var('COREBASE'), 'scripts') | ||
71 | |||
72 | def test_oegitproxy_help(self): | ||
73 | try: | ||
74 | res = runCmd('%s/oe-git-proxy --help' % self.scripts_dir, assert_error=False) | ||
75 | self.assertTrue(False) | ||
76 | except CommandError as e: | ||
77 | self.assertEqual(2, e.retcode) | ||
78 | |||
79 | def run_oegitproxy(self, custom_shell=None): | ||
80 | os.environ['SOCAT'] = shutil.which("echo") | ||
81 | os.environ['ALL_PROXY'] = "https://proxy.example.com:3128" | ||
82 | os.environ['NO_PROXY'] = "*.example.com,.no-proxy.org,192.168.42.0/24,127.*.*.*" | ||
83 | |||
84 | if custom_shell is None: | ||
85 | prefix = '' | ||
86 | else: | ||
87 | prefix = custom_shell + ' ' | ||
88 | |||
89 | # outside, use the proxy | ||
90 | res = runCmd('%s%s/oe-git-proxy host.outside-example.com 9418' % | ||
91 | (prefix,self.scripts_dir)) | ||
92 | self.assertIn('PROXY:', res.output) | ||
93 | # match with wildcard suffix | ||
94 | res = runCmd('%s%s/oe-git-proxy host.example.com 9418' % | ||
95 | (prefix, self.scripts_dir)) | ||
96 | self.assertIn('TCP:', res.output) | ||
97 | # match just suffix | ||
98 | res = runCmd('%s%s/oe-git-proxy host.no-proxy.org 9418' % | ||
99 | (prefix, self.scripts_dir)) | ||
100 | self.assertIn('TCP:', res.output) | ||
101 | # match IP subnet | ||
102 | res = runCmd('%s%s/oe-git-proxy 192.168.42.42 9418' % | ||
103 | (prefix, self.scripts_dir)) | ||
104 | self.assertIn('TCP:', res.output) | ||
105 | # match IP wildcard | ||
106 | res = runCmd('%s%s/oe-git-proxy 127.1.2.3 9418' % | ||
107 | (prefix, self.scripts_dir)) | ||
108 | self.assertIn('TCP:', res.output) | ||
109 | |||
110 | # test that * globbering is off | ||
111 | os.environ['NO_PROXY'] = "*" | ||
112 | res = runCmd('%s%s/oe-git-proxy host.example.com 9418' % | ||
113 | (prefix, self.scripts_dir)) | ||
114 | self.assertIn('TCP:', res.output) | ||
115 | |||
116 | def test_oegitproxy_proxy(self): | ||
117 | self.run_oegitproxy() | ||
118 | |||
119 | def test_oegitproxy_proxy_dash(self): | ||
120 | dash = shutil.which("dash") | ||
121 | if dash is None: | ||
122 | self.skipTest("No \"dash\" found on test system.") | ||
123 | self.run_oegitproxy(custom_shell=dash) | ||