// Build system audit tests
// Tests deterministic dylib paths, symbol naming, and lib layout

var shop = use('internal/shop')
var runtime = use('runtime')

return {
  // ========================================================================
  // SYMBOL NAMING
  // ========================================================================

  test_c_symbol_module: function() {
    var sym = shop.c_symbol_for_file('pkg', 'sprite.c')
    if (sym != 'js_pkg_sprite_use') return "expected js_pkg_sprite_use, got: " + sym
  },

  test_c_symbol_program: function() {
    var sym = shop.c_symbol_for_file('pkg', 'game.ce')
    if (sym != 'js_pkg_game_program') return "expected js_pkg_game_program, got: " + sym
  },

  test_c_symbol_internal: function() {
    var sym = shop.c_symbol_for_file('pkg', 'internal/os.c')
    if (sym != 'js_pkg_internal_os_use') return "expected js_pkg_internal_os_use, got: " + sym
  },

  test_c_symbol_dotted_package: function() {
    var sym = shop.c_symbol_for_file('gitea.pockle.world/john/prosperon', 'sprite.c')
    if (sym != 'js_gitea_pockle_world_john_prosperon_sprite_use')
      return "expected js_gitea_pockle_world_john_prosperon_sprite_use, got: " + sym
  },

  // ========================================================================
  // LIB NAME
  // ========================================================================

  test_lib_name: function() {
    var name = shop.lib_name_for_package('gitea.pockle.world/john/prosperon')
    if (name != 'gitea_pockle_world_john_prosperon')
      return "expected gitea_pockle_world_john_prosperon, got: " + name
  },

  test_lib_name_simple: function() {
    var name = shop.lib_name_for_package('core')
    if (name != 'core') return "expected core, got: " + name
  },

  // ========================================================================
  // SYMBOL PREFIX
  // ========================================================================

  test_c_symbol_prefix: function() {
    var prefix = shop.c_symbol_prefix('mypackage')
    if (prefix != 'js_mypackage_') return "expected js_mypackage_, got: " + prefix
  }
}
