code: def test_repeated_ids_for_same_project():
      t = BoostBuild.Tester()
  
      t.write("jamroot.jam", "project foo ; project foo ;")
      t.run_build_system()
  
      t.write("jamroot.jam", "project foo ; use-project foo : . ;")
      t.run_build_system()
  
      t.write("jamroot.jam", "project foo ; use-project foo : ./. ;")
      t.run_build_system()
  
      t.write(
          "jamroot.jam",
          """\
  project foo ;
  use-project foo : . ;
  use-project foo : ./aaa/.. ;
  use-project foo : ./. ;
  """,
      )
      t.run_build_system()
  
      # On Windows we have a case-insensitive file system and we can use
      # backslashes as path separators.
      # FIXME: Make a similar test pass on Cygwin.
      if sys.platform in ["win32"]:
          t.write("a/fOo bAr/b/jamfile.jam", "")
          t.write(
              "jamroot.jam",
              r"""
  use-project bar : "a/foo bar/b" ;
  use-project bar : "a/foO Bar/b" ;
  use-project bar : "a/foo BAR/b/" ;
  use-project bar : "a\\.\\FOO bar\\b\\" ;
  """,
          )
          t.run_build_system()
          t.rm("a")
  
      t.write("bar/jamfile.jam", "")
      t.write(
          "jamroot.jam",
          """\
  use-project bar : bar ;
  use-project bar : bar/ ;
  use-project bar : bar// ;
  use-project bar : bar/// ;
  use-project bar : bar//// ;
  use-project bar : bar/. ;
  use-project bar : bar/./ ;
  use-project bar : bar/////./ ;
  use-project bar : bar/../bar/xxx/.. ;
  use-project bar : bar/..///bar/xxx///////.. ;
  use-project bar : bar/./../bar/xxx/.. ;
  use-project bar : bar/.////../bar/xxx/.. ;
  use-project bar : bar/././../bar/xxx/.. ;
  use-project bar : bar/././//////////../bar/xxx/.. ;
  use-project bar : bar/.///.////../bar/xxx/.. ;
  use-project bar : bar/./././xxx/.. ;
  use-project bar : bar/xxx////.. ;
  use-project bar : bar/xxx/.. ;
  use-project bar : bar///////xxx/.. ;
  """,
      )
      t.run_build_system()
      t.rm("bar")
  
      # On Windows we have a case-insensitive file system and we can use
      # backslashes as path separators.
      # FIXME: Make a similar test pass on Cygwin.
      if sys.platform in ["win32"]:
          t.write("baR/jamfile.jam", "")
          t.write(
              "jamroot.jam",
              r"""
  use-project bar : bar ;
  use-project bar : BAR ;
  use-project bar : bAr ;
  use-project bar : bAr/ ;
  use-project bar : bAr\\ ;
  use-project bar : bAr\\\\ ;
  use-project bar : bAr\\\\///// ;
  use-project bar : bAr/. ;
  use-project bar : bAr/./././ ;
  use-project bar : bAr\\.\\.\\.\\ ;
  use-project bar : bAr\\./\\/.\\.\\ ;
  use-project bar : bAr/.\\././ ;
  use-project bar : Bar ;
  use-project bar : BaR ;
  use-project bar : BaR/./../bAr/xxx/.. ;
  use-project bar : BaR/./..\\bAr\\xxx/.. ;
  use-project bar : BaR/xxx/.. ;
  use-project bar : BaR///\\\\\\//xxx/.. ;
  use-project bar : Bar\\xxx/.. ;
  use-project bar : BAR/xXx/.. ;
  use-project bar : BAR/xXx\\\\/\\/\\//\\.. ;
  """,
          )
          t.run_build_system()
          t.rm("baR")
  
      t.cleanup()
  
imports: import BoostBuild
  import sys
label_desc: Use image node_id 4 for calling a global function with example usage: test_repeated_ids_for_same_project() without return types