@@ -462,3 +462,87 @@ TEST_F(Mgr, dir_double)
462462 EXPECT_NE (fds_iemgr_read_dir (mgr, FILES_INVALID " multiple_user" ), FDS_OK);
463463 EXPECT_ERROR;
464464}
465+
466+ TEST_F (Mgr, dir_alias_mapping)
467+ {
468+ EXPECT_EQ (fds_iemgr_read_dir (mgr, FILES_VALID " readdir_alias_mapping" ), FDS_OK);
469+ EXPECT_NO_ERROR;
470+
471+ EXPECT_NE (fds_iemgr_alias_find (mgr, " ac" ), nullptr );
472+ EXPECT_NE (fds_iemgr_alias_find (mgr, " ca" ), nullptr );
473+ EXPECT_NE (fds_iemgr_alias_find (mgr, " d" ), nullptr );
474+ EXPECT_EQ (fds_iemgr_alias_find (mgr, " a" ), nullptr );
475+ EXPECT_EQ (fds_iemgr_alias_find (mgr, " b" ), nullptr );
476+ EXPECT_EQ (fds_iemgr_alias_find (mgr, " c" ), nullptr );
477+
478+ auto *alias_ac = fds_iemgr_alias_find (mgr, " ac" );
479+ ASSERT_NE (alias_ac, nullptr );
480+ auto *alias_d = fds_iemgr_alias_find (mgr, " d" );
481+ ASSERT_NE (alias_d, nullptr );
482+ auto *elem_a = fds_iemgr_elem_find_name (mgr, " iana:a" );
483+ ASSERT_NE (elem_a, nullptr );
484+ auto *elem_c = fds_iemgr_elem_find_name (mgr, " iana:c" );
485+ ASSERT_NE (elem_c, nullptr );
486+ auto *elem_d = fds_iemgr_elem_find_name (mgr, " iana:d" );
487+ ASSERT_NE (elem_d, nullptr );
488+ auto *elem_e = fds_iemgr_elem_find_name (mgr, " iana:e" );
489+ ASSERT_NE (elem_e, nullptr );
490+
491+ EXPECT_EQ (alias_ac->sources_cnt , 2 );
492+ EXPECT_EQ (alias_ac->sources [0 ], elem_a);
493+ EXPECT_EQ (alias_ac->sources [1 ], elem_c);
494+
495+ EXPECT_EQ (alias_d->sources_cnt , 1 );
496+ EXPECT_EQ (alias_d->sources [0 ], elem_d);
497+
498+ EXPECT_EQ (elem_a->aliases_cnt , 1 );
499+ EXPECT_EQ (elem_a->aliases [0 ], alias_ac);
500+ EXPECT_EQ (elem_c->aliases_cnt , 1 );
501+ EXPECT_EQ (elem_c->aliases [0 ], alias_ac);
502+
503+ EXPECT_EQ (elem_d->aliases_cnt , 1 );
504+ EXPECT_EQ (elem_d->aliases [0 ], alias_d);
505+
506+ EXPECT_EQ (elem_e->aliases_cnt , 0 );
507+
508+ EXPECT_EQ (elem_e->mappings_cnt , 1 );
509+ EXPECT_EQ (elem_e->mappings [0 ]->items_cnt , 2 );
510+ EXPECT_EQ (elem_e->mappings [0 ]->items [0 ].value .i , 1 );
511+ EXPECT_EQ (elem_e->mappings [0 ]->items [1 ].value .i , 2 );
512+
513+ EXPECT_NE (fds_iemgr_mapping_find (mgr, " iana:e" , " val1" ), nullptr );
514+ EXPECT_NE (fds_iemgr_mapping_find (mgr, " iana:e" , " val1" ), nullptr );
515+ EXPECT_NE (fds_iemgr_mapping_find (mgr, " iana:e" , " Val1" ), nullptr );
516+ EXPECT_NE (fds_iemgr_mapping_find (mgr, " iana:e" , " VAL1" ), nullptr );
517+ EXPECT_NE (fds_iemgr_mapping_find (mgr, " iana:e" , " VAL2" ), nullptr );
518+ EXPECT_NE (fds_iemgr_mapping_find (mgr, " iana:e" , " Val2" ), nullptr );
519+ EXPECT_NE (fds_iemgr_mapping_find (mgr, " iana:e" , " val2" ), nullptr );
520+
521+ EXPECT_EQ (fds_iemgr_mapping_find (mgr, " iana:e" , " val1" )->value .i , 1 );
522+ EXPECT_EQ (fds_iemgr_mapping_find (mgr, " iana:e" , " val2" )->value .i , 2 );
523+
524+ EXPECT_NE (fds_iemgr_mapping_find (mgr, " ac" , " val3" ), nullptr );
525+ EXPECT_NE (fds_iemgr_mapping_find (mgr, " ca" , " val3" ), nullptr );
526+
527+ EXPECT_EQ (fds_iemgr_mapping_find (mgr, " aca" , " val3" ), nullptr );
528+ EXPECT_EQ (fds_iemgr_mapping_find (mgr, " caca" , " val3" ), nullptr );
529+
530+ EXPECT_EQ (fds_iemgr_mapping_find (mgr, " ac" , " val1" ), nullptr );
531+ EXPECT_EQ (fds_iemgr_mapping_find (mgr, " ac" , " val2" ), nullptr );
532+
533+ EXPECT_EQ (fds_iemgr_mapping_find (mgr, " ca" , " val1" ), nullptr );
534+ EXPECT_EQ (fds_iemgr_mapping_find (mgr, " ca" , " val2" ), nullptr );
535+
536+ EXPECT_EQ (fds_iemgr_mapping_find (mgr, " ac" , " Val3" ), nullptr );
537+ EXPECT_EQ (fds_iemgr_mapping_find (mgr, " ac" , " VAL3" ), nullptr );
538+
539+ EXPECT_EQ (fds_iemgr_mapping_find (mgr, " ac" , " val3" )->value .i , 3 );
540+ EXPECT_EQ (fds_iemgr_mapping_find (mgr, " ca" , " val3" )->value .i , 3 );
541+
542+ EXPECT_EQ (elem_a->mappings_cnt , 1 );
543+ EXPECT_EQ (elem_a->mappings [0 ]->items_cnt , 1 );
544+ EXPECT_EQ (elem_a->mappings [0 ]->items [0 ].value .i , 3 );
545+ EXPECT_EQ (elem_c->mappings_cnt , 1 );
546+ EXPECT_EQ (elem_c->mappings [0 ]->items_cnt , 1 );
547+ EXPECT_EQ (elem_c->mappings [0 ]->items [0 ].value .i , 3 );
548+ }
0 commit comments