debugstack=debug.traceback strmatch=string.match;(loadfile("\046\046\047\076\105\098\083\116\117\098\046\108\117\097"))()for c,y in LibStub:IterateLibraries()do assert(c~="\077\121\076\105\098")end assert(not LibStub:GetLibrary("\077\121\076\105\098",true))assert(not pcall(LibStub.GetLibrary,LibStub,"\077\121\076\105\098"))local c=LibStub:NewLibrary("\077\121\076\105\098",1)assert(c)assert(rawequal(LibStub:GetLibrary("\077\121\076\105\098"),c))assert(LibStub:NewLibrary("\077\121\076\105\098",2))local y=0 for K,T in LibStub:IterateLibraries()do if K=="\077\121\076\105\098"then y=y+1 assert(rawequal(T,c))end end assert(y==1)
debugstack = debug.traceback
strmatch = string.match

loadfile("../LibStub.lua")()

for major, library in LibStub:IterateLibraries() do
	-- check that MyLib doesn't exist yet, by iterating through all the libraries
	assert(major ~= "MyLib")
end

assert(not LibStub:GetLibrary("MyLib", true)) -- check that MyLib doesn't exist yet by direct checking
assert(not pcall(LibStub.GetLibrary, LibStub, "MyLib")) -- don't silently fail, thus it should raise an error.
local lib = LibStub:NewLibrary("MyLib", 1) -- create the lib
assert(lib) -- check it exists
assert(rawequal(LibStub:GetLibrary("MyLib"), lib)) -- verify that :GetLibrary("MyLib") properly equals the lib reference

assert(LibStub:NewLibrary("MyLib", 2))	-- create a new version

local count=0
for major, library in LibStub:IterateLibraries() do
	-- check that MyLib exists somewhere in the libraries, by iterating through all the libraries
	if major == "MyLib" then -- we found it!
		count = count +1
		assert(rawequal(library, lib)) -- verify that the references are equal
	end
end
assert(count == 1) -- verify that we actually found it, and only once
