[ 
https://issues.apache.org/jira/browse/SVN-4891?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17503028#comment-17503028
 ] 

Daniel Shahaf commented on SVN-4891:
------------------------------------

> basic_tests.py 9 basic_update_corruption()
> 
> should be the same... but something has changed, and the 'update' under test 
> fails to fail. The update unexpectedly succeeds, so the test fails (when 
> testing against 1.14 format).

In subversion/libsvn_wc/textbase.c:open_textbase() we do this:
{code:java}
272   if (checksum && svn_checksum_match(checksum, target_checksum))            
                                                                                
                                                    273     {                   
                                                                                
                                                                                
                        
274       svn_boolean_t modified;                                               
                                                                                
                                                    275                         
                                                                                
                                                                                
                        
276       SVN_ERR(check_file_modified(&modified, db, local_abspath, 
recorded_size,                                                                  
                                                                
277                                   recorded_time, target_checksum, 
have_props,                                                                     
                                                              
278                                   props_mod, scratch_pool));                
                                                                                
                                                    
279       if (!modified)                                                        
                                                                                
                                                    
280         {                                                                   
                                                                                
                                                    281           
SVN_ERR(svn_wc__internal_translated_stream(contents_p, db,                      
                                                                                
                                      282                                       
               local_abspath,                                                   
                                                                                
          
283                                                      local_abspath,         
                                                                                
                                                    284                         
                             SVN_WC_TRANSLATE_TO_NF,                            
                                                                                
                        285                                                     
 result_pool,                                                                   
                                                                            
286                                                      scratch_pool));        
                                                                                
                                                    287                         
                                                                                
                                                                                
                        288           return SVN_NO_ERROR;                      
                                                                                
                                                                            
289         }                                                                   
                                                                                
                                                    290     }                   
                                                                                
                                                                                
                        
291                                                                             
                                                                                
                                                    
292   SVN_ERR(svn_wc__db_pristine_read(contents_p, NULL, db, local_abspath,     
                                                                                
                                                    
293                                    target_checksum, result_pool, 
scratch_pool));                                                                 
                                                               
{code}
The local file is unmodified, so we return a stream to the ACTUAL file [I'm not 
shouting; this is a term of art] and never notice the old text-base. The update 
actually works just fine even if the "old" text-base is deleted entirely.

I had tried to bisect this too, however, as of the creation of the "-on-mwf" 
rebase branch the test failed with an error about the {{TEXTBASE_REFS}} table 
not existing (sorry, I didn't keep the error message). That seemed unrelated so 
I did not attempt to bisect further.

> Pristines-on-demand: fix disabled tests
> ---------------------------------------
>
>                 Key: SVN-4891
>                 URL: https://issues.apache.org/jira/browse/SVN-4891
>             Project: Subversion
>          Issue Type: Bug
>            Reporter: Julian Foad
>            Assignee: Julian Foad
>            Priority: Major
>
> The following tests had been changed in the pristines-on-demand development.
> Most were disabled with the '@Wimp' decorator. (This caused some of them to 
> give an XPASS and some an XFAIL result when run against the older WC format, 
> and all XFAIL against the newer WC format.)
> They need to be re-enabled and fixed.
> (I am removing them from this list as and when fixed.)
> {code:java}
>     basic_tests.py 8 basic_commit_corruption(): basic corruption detection on 
> commit
>       [[Relies on wc.text_base_path()]]
>     basic_tests.py 9 basic_update_corruption(): basic corruption detection on 
> update
>       [[Relies on wc.text_base_path()]]
>     externals_tests.py ... ... ...:
>       update_modify_file_external(),
>       remap_file_external_with_prop_del(),
>       file_external_recorded_info():
>         existing issue (Windows only)
>     revert_tests.py 2 revert_reexpand_keyword(): revert reexpands manually 
> contracted keyword
>       "See r1101730 and r1101817"
>     trans_tests.py 1 keywords_from_birth(): commit new files with keywords 
> active from birth
>       [[Relies on wc.text_base_path()]]
>     trans_tests.py 3 eol_change_is_text_mod(): committing eol-style change 
> forces text send
>       [[Relies on wc.text_base_path()]]
>     update_tests.py 57 skip_access_denied(): access denied paths should be 
> skipped
>       [[Need to update the access denied handling in update_editor.c]]
>     upgrade_tests.py 16 replaced_files(): upgrade with base and working 
> replaced files
>       [[Can't fetch pristines: the working copy points to file:///tmp/repo]]
>     {code}
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to