diff --git a/tools/gen-release-notes b/tools/gen-release-notes
index d77e948b89f39f0a551a30191a74dfb3b1abca5b..08a240ce33093ba0e2a3835bb3d97aa8cef4da15 100755
--- a/tools/gen-release-notes
+++ b/tools/gen-release-notes
@@ -14,7 +14,7 @@ import subprocess
 # Ensure certain order for known sections.
 SECTIONS_TOP = ['core', 'memtx', 'vinyl', 'replication', 'swim',
                 'raft', 'luajit', 'lua', 'sql']
-SECTIONS_BOTTOM = ['build', 'testing', 'misc']
+SECTIONS_BOTTOM = ['build', 'misc']
 
 # Prettify headers, apply the ordering.
 REDEFINITIONS = {
@@ -284,9 +284,10 @@ class Parser:
         if line.startswith('## '):
             header = line.split(' ', 1)[1].strip()
             fst = header.split('/', 1)[0]
-            if fst not in ('feature', 'bugfix'):
+            if fst not in ('feature', 'bugfix', 'tools', 'testing'):
                 raise self.error("Unknown header: '{}', should be "
-                                 "'feature/<...>' or 'bugfix/<...>'"
+                                 "'feature/<...>' or 'bugfix/<...>' or"
+                                 "'tools/<...>' or 'testing/<...>'"
                                  .format(header))
             self.header = header
             self._process = self._wait_content