subroutine test_attr_update()
character(len=:),allocatable :: in
character(len=:),allocatable :: out
call unit_check_start('attr_update',' '//OPTIONS)
if(unit_check_level.gt.0)then
endif
call attr_mode(manner='color')
call attr_update('/b','>>>>')
call attr_update('b','<<<<')
call attr_update('blink',esc//'[5m')
call attr_update('/blink',esc//'[25m')
call attr_update('mono',attr( '<esc>]11;black<bel><esc>]10;white<bel>' )) ! change default bg and fg
call attr_update('/r')
call attr_update('r')
in=attr('<blink>blink!</blink> stare!')
out=esc//'[5mblink!'//esc//'[25m stare!'//esc//'[0m'
call unit_check('attr_update',in.eq.out,'add blink, in=',in,'out=',attr(in),'expect=',out)
in=attr('<r>red removed</r>')
out='<r>red removed</r>'
call unit_check('attr_update',in.eq.out,'in=',in,'out=',attr(in),'expect=',out)
in=attr('<b>blue replaced</b>')
out='<<<<blue replaced>>>>'
call unit_check('attr_update',in.eq.out,'in=',in,'out=',attr(in),'expect=',out)
call unit_check_done('attr_update')
end subroutine test_attr_update