Before:
  Save g:ale_cpp_clangtidy_checks
  Save g:ale_cpp_clangtidy_options
  runtime ale_linters/cpp/clangtidy.vim

After:
  Restore
  call ale#linter#Reset()

Execute(The clangtidy command default should be correct):
  AssertEqual
  \ 'clang-tidy -checks=''*'' %s',
  \ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))

Execute(You should be able to remove the -checks option for clang-tidy):
  let g:ale_cpp_clangtidy_checks = []
  AssertEqual
  \ 'clang-tidy %s',
  \ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))

Execute(You should be able to set other checks for clang-tidy):
  let g:ale_cpp_clangtidy_checks = ['-*', 'clang-analyzer-*']
  AssertEqual
  \ 'clang-tidy -checks=''-*,clang-analyzer-*'' %s',
  \ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))

Execute(You should be able to manually set compiler flags for clang-tidy):
  let g:ale_cpp_clangtidy_options = '-Wall'
  AssertEqual
  \ 'clang-tidy -checks=''*'' %s -- -Wall',
  \ ale_linters#cpp#clangtidy#GetCommand(bufnr(''))