!!! all tests from test_non_ascii failed on win32

Alexander Belchenko bialix at ukr.net
Sat Oct 13 10:33:31 BST 2007


John Arbash Meinel пишет:
> Alexander Belchenko wrote:
>> When I'm testing the recent patch from Lukas I found that almost
>> ALL blackbox non-ascii tests are failed with the same error KeyError:
> 
> ...
> 
>>   File "C:\work\Bazaar\mydev\bzr.dev\bzrlib\dirstate.py", line 1231, in
>> get_lines
>>     lines.extend(map(self._entry_to_line, self._iter_entries()))
>>   File "C:\work\Bazaar\mydev\bzr.dev\bzrlib\dirstate.py", line 1000, in
>> _entry_to_line
>>     entire_entry[tree_offset + 3] = DirState._to_yesno[tree_data[3]]
>> KeyError: None
>>
>> ----------------------------------------------------------------------
>>
>>
>> I'll try to run full selftest ASAP, but it seems that there is a BIG
>> regression on win32, either in bzrlib or tests.
>>
>> Alexander
> 
> It looks like something is setting "executable = None" rather than "executable
> = True" or "executable = False".
> 
> Just to check, do you get the same result if you run "bzr selftest --no-plugins
> ..." ?
> 
> Otherwise I don't see how it is happening. When we "Dirstate.add()" we set the
> executable field to False. And on win32 when we update_entry we use:
> 
> def _is_executable_win32(self, mode, saved_executable):
>   return saved_executable
> 
> I agree that this seems like a serious regression, I just don't quite
> understand what is causing tree_data[3] to be set to None.
> 
> 
> Ah.... maybe this one:
> 
> def _inv_entry_to_details(self, inv_entry):
> ...
>         elif kind == 'file':
>             fingerprint = inv_entry.text_sha1 or ''
>             size = inv_entry.text_size or 0
>             executable = inv_entry.executable
> 
> We could try:
> 
>   executable = inv_entry.executable or False
> 
> Does that fix the problem? I'm not sure why inv_entry.executable isn't being
> set. Maybe we removed one of the "_read_state_from_tree()" calls, or something
> else that was supposed to set it.
> 
> Can you investigate further?

Kenny said he has been killed by revision 2879:

  2879 Canonical.com Patch Queue Manager 2007-10-03 [merge]
       (robertc) Move serialisation of inventory entries into 
CommitBuilder. (Robert Collins)





More information about the bazaar mailing list