I could run with copy_tree using this workaround ======================================= diff --git a/rtemstoolkit/path.py b/rtemstoolkit/path.py index 760f4bd..df553b3 100644 --- a/rtemstoolkit/path.py +++ b/rtemstoolkit/path.py @@ -191,10 +191,10 @@ def copy_tree(src, dst): hsrc = host(src) hdst = host(dst)
- if os.path.exists(src): + if os.path.exists(src) and os.path.isdir(src): names = os.listdir(src) else: - name = [] + names = [] if not os.path.isdir(dst): os.makedirs(dst) ===================================== But there's still an issue with the file permission as it uses copystat which copies the permission bits which is not required in this case. It requires a manual `rm` with root permission before rerunning the coverage. On Sun, 28 Oct 2018 at 16:31, Vijay Kumar Banerjee <vijaykumar9...@gmail.com> wrote: > > > > On Sun, 28 Oct 2018 at 15:46, Chris Johns <chr...@rtems.org> wrote: > >> On 28/10/18 8:33 pm, Vijay Kumar Banerjee wrote: >> > On Sun, 28 Oct 2018 at 09:00, Chris Johns <chr...@rtems.org >> > <mailto:chr...@rtems.org>> wrote: >> > >> > On 27/10/18 5:13 am, Vijay Kumar Banerjee wrote: >> > > --- >> > > tester/rt/coverage.py | 17 ++++------------- >> > > 1 file changed, 4 insertions(+), 13 deletions(-) >> > > >> > > diff --git a/tester/rt/coverage.py b/tester/rt/coverage.py >> > > index 978a8c4..4200dad 100644 >> > > --- a/tester/rt/coverage.py >> > > +++ b/tester/rt/coverage.py >> > > @@ -201,23 +201,14 @@ class report_gen_html: >> > > index_content = >> > self._prepare_index_content(partial_reports) >> > > self._create_index_file(head_section,index_content) >> > > >> > > - def add_covoar_src_path(self): >> > > + def add_covoar_css(self): >> > > table_js_path = path.join(self.covoar_src_path, >> 'table.js') >> > > covoar_css_path = path.join(self.covoar_src_path, >> > 'covoar.css') >> > > for symbol_set in self.symbol_sets: >> > > symbol_set_dir = path.join(self.build_dir, >> > > self.bsp + '-coverage', >> > symbol_set) >> > > - html_files = os.listdir(symbol_set_dir) >> > > - for html_file in html_files: >> > > - html_file = path.join(symbol_set_dir, html_file) >> > > - if path.exists(html_file) and 'html' in >> html_file: >> > > - with open(html_file, 'r') as f: >> > > - file_data = f.read() >> > > - file_data = file_data.replace('table.js', >> > table_js_path) >> > > - file_data = file_data.replace('covoar.css', >> > > - >> covoar_css_path) >> > > - with open(html_file, 'w') as f: >> > > - f.write(file_data) >> > > + shutil.copy(covoar_css_path, symbol_set_dir) >> > > + shutil.copy(table_js_path, symbol_set_dir) >> > >> > How portable are these calls? >> > >> > Please have a look at 'path.copy_tree' in the rtemstoolkit's >> path.py. I >> > think you can use that call instead. >> > >> > shutil is portable as it comes with python. >> >> It does not handle some issues on Windows. >> >> > i looked into the path.copy_tree >> > it uses shutil as well, >> >> It does but it handles some issues expose in the RSB over many years. >> > Understood. > >> >> > but it requires the source-name to be a directory >> > wherefrom it will copy all the files to destination directory. >> >> It can be extended. >> > I'm getting a 'Not a directory' error as it uses listdir on the srcpath > and then iterates over the > files. Shall I write a path.copy for it ? with the WindowsError handling > similar to > copy_tree ? > >> >> > Is there a reason that path.copy_tree has been used instead of >> > shutil.copytree ? >> > https://docs.python.org/2/library/shutil.html#shutil.copytree >> >> It can break on Windows. >> >> Please use the path module for all file operations to we can be >> portable. I think one call was pushed in the other patch which Joel >> merged that needs to be fixed. > > Sorry about that. I didn't know that it breaks on Windows. > Can you please comment on the patch so that I can fix it? > I'll ping you there. :) > >> >> > Chris >> >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel