@@ -443,15 +443,16 @@ static void test_reftable_stack_add(void)
443
443
int err = 0 ;
444
444
struct reftable_write_options cfg = {
445
445
.exact_log_message = 1 ,
446
+ .default_permissions = 0660 ,
446
447
};
447
448
struct reftable_stack * st = NULL ;
448
449
char * dir = get_tmp_dir (__LINE__ );
449
-
450
450
struct reftable_ref_record refs [2 ] = { { NULL } };
451
451
struct reftable_log_record logs [2 ] = { { NULL } };
452
+ struct strbuf path = STRBUF_INIT ;
453
+ struct stat stat_result ;
452
454
int N = ARRAY_SIZE (refs );
453
455
454
-
455
456
err = reftable_new_stack (& st , dir , cfg );
456
457
EXPECT_ERR (err );
457
458
st -> disable_auto_compact = 1 ;
@@ -509,12 +510,32 @@ static void test_reftable_stack_add(void)
509
510
reftable_log_record_release (& dest );
510
511
}
511
512
513
+ #ifndef GIT_WINDOWS_NATIVE
514
+ strbuf_addstr (& path , dir );
515
+ strbuf_addstr (& path , "/tables.list" );
516
+ err = stat (path .buf , & stat_result );
517
+ EXPECT (!err );
518
+ EXPECT ((stat_result .st_mode & 0777 ) == cfg .default_permissions );
519
+
520
+ strbuf_reset (& path );
521
+ strbuf_addstr (& path , dir );
522
+ strbuf_addstr (& path , "/" );
523
+ /* do not try at home; not an external API for reftable. */
524
+ strbuf_addstr (& path , st -> readers [0 ]-> name );
525
+ err = stat (path .buf , & stat_result );
526
+ EXPECT (!err );
527
+ EXPECT ((stat_result .st_mode & 0777 ) == cfg .default_permissions );
528
+ #else
529
+ (void ) stat_result ;
530
+ #endif
531
+
512
532
/* cleanup */
513
533
reftable_stack_destroy (st );
514
534
for (i = 0 ; i < N ; i ++ ) {
515
535
reftable_ref_record_release (& refs [i ]);
516
536
reftable_log_record_release (& logs [i ]);
517
537
}
538
+ strbuf_release (& path );
518
539
clear_dir (dir );
519
540
}
520
541
0 commit comments