"I have taken this decision to allow Sri Lanka Cricket to groom another youngster in my place," Dilshan, 36, said on Wednesday
"I was to announce my retirement after the Zimbabwe Test series but unfortunately the tour was postponed."
The 36-year-old all-rounder Dilshan has played 87 test matches and amassed 5,492 runs at an average of 40.98. He has scored 16 Test centuries and 23 fifties at a strike rate of 65.54. His highest Test score being 193 not out against England at Lord's in 2011.