# Copyright (C) 2014-2021 Free Software Foundation, Inc.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# Test support for D demangling.  The tests here intentionally do not
# require a D compiler, it simply calls the internal demangler with
# synthesized strings and tests the results.

load_lib "d-support.exp"

if { [skip_d_tests] } { continue }

### Utility function for test_demangling and test_demangling_exact.
proc test_demangling {test result} {
    gdb_test_exact "demangle $test" $result $test
}

proc test_d_demangling {} {

    #  Test D demangler
    test_demangling "_Dmain" "D main"

    test_demangling "_D8demangle4testFaZv" "demangle.test(char)"
    test_demangling "_D8demangle4testFbZv" "demangle.test(bool)"
    test_demangling "_D8demangle4testFcZv" "demangle.test(creal)"
    test_demangling "_D8demangle4testFdZv" "demangle.test(double)"
    test_demangling "_D8demangle4testFeZv" "demangle.test(real)"
    test_demangling "_D8demangle4testFfZv" "demangle.test(float)"
    test_demangling "_D8demangle4testFgZv" "demangle.test(byte)"
    test_demangling "_D8demangle4testFhZv" "demangle.test(ubyte)"
    test_demangling "_D8demangle4testFiZv" "demangle.test(int)"
    test_demangling "_D8demangle4testFjZv" "demangle.test(ireal)"
    test_demangling "_D8demangle4testFkZv" "demangle.test(uint)"
    test_demangling "_D8demangle4testFlZv" "demangle.test(long)"
    test_demangling "_D8demangle4testFmZv" "demangle.test(ulong)"
    test_demangling "_D8demangle4testFnZv" "demangle.test(none)"
    test_demangling "_D8demangle4testFoZv" "demangle.test(ifloat)"
    test_demangling "_D8demangle4testFpZv" "demangle.test(idouble)"
    test_demangling "_D8demangle4testFqZv" "demangle.test(cfloat)"
    test_demangling "_D8demangle4testFrZv" "demangle.test(cdouble)"
    test_demangling "_D8demangle4testFsZv" "demangle.test(short)"
    test_demangling "_D8demangle4testFtZv" "demangle.test(ushort)"
    test_demangling "_D8demangle4testFuZv" "demangle.test(wchar)"
    test_demangling "_D8demangle4testFvZv" "demangle.test(void)"
    test_demangling "_D8demangle4testFwZv" "demangle.test(dchar)"

    test_demangling "_D8demangle4testFOaZv" "demangle.test(shared(char))"
    test_demangling "_D8demangle4testFxaZv" "demangle.test(const(char))"
    test_demangling "_D8demangle4testFyaZv" "demangle.test(immutable(char))"
    test_demangling "_D8demangle4testFNgaZv" "demangle.test(inout(char))"
    test_demangling "_D8demangle4testFOxaZv" "demangle.test(shared(const(char)))"
    test_demangling "_D8demangle4testFONgaZv" "demangle.test(shared(inout(char)))"
    test_demangling "_D8demangle4testFAaZv" "demangle.test(char\[\])"
    test_demangling "_D8demangle4testFAAaZv" "demangle.test(char\[\]\[\])"
    test_demangling "_D8demangle4testFAAAaZv" "demangle.test(char\[\]\[\]\[\])"
    test_demangling "_D8demangle4testFG42aZv" "demangle.test(char\[42\])"
    test_demangling "_D8demangle4testFG42G42aZv" "demangle.test(char\[42\]\[42\])"
    test_demangling "_D8demangle4testFG42G42G42aZv" "demangle.test(char\[42\]\[42\]\[42\])"
    test_demangling "_D8demangle4testFG1234567890aZv" "demangle.test(char\[1234567890\])"
    test_demangling "_D8demangle4testFHaaZv" "demangle.test(char\[char\])"
    test_demangling "_D8demangle4testFHHaaaZv" "demangle.test(char\[char\[char\]\])"
    test_demangling "_D8demangle4testFPaZv" "demangle.test(char*)"
    test_demangling "_D8demangle4testFPPaZv" "demangle.test(char**)"
    test_demangling "_D8demangle4testFPPPaZv" "demangle.test(char***)"

    test_demangling "_D8demangle4testFNhG8gZv" "demangle.test(__vector(byte\[8\]))"
    test_demangling "_D8demangle4testFNhG16gZv" "demangle.test(__vector(byte\[16\]))"
    test_demangling "_D8demangle4testFNhG32gZv" "demangle.test(__vector(byte\[32\]))"
    test_demangling "_D8demangle4testFNhG4sZv" "demangle.test(__vector(short\[4\]))"
    test_demangling "_D8demangle4testFNhG8sZv" "demangle.test(__vector(short\[8\]))"
    test_demangling "_D8demangle4testFNhG16sZv" "demangle.test(__vector(short\[16\]))"
    test_demangling "_D8demangle4testFNhG2iZv" "demangle.test(__vector(int\[2\]))"
    test_demangling "_D8demangle4testFNhG4iZv" "demangle.test(__vector(int\[4\]))"
    test_demangling "_D8demangle4testFNhG8iZv" "demangle.test(__vector(int\[8\]))"
    test_demangling "_D8demangle4testFNhG1lZv" "demangle.test(__vector(long\[1\]))"
    test_demangling "_D8demangle4testFNhG2lZv" "demangle.test(__vector(long\[2\]))"
    test_demangling "_D8demangle4testFNhG4lZv" "demangle.test(__vector(long\[4\]))"
    test_demangling "_D8demangle4testFNhG2fZv" "demangle.test(__vector(float\[2\]))"
    test_demangling "_D8demangle4testFNhG4fZv" "demangle.test(__vector(float\[4\]))"
    test_demangling "_D8demangle4testFNhG8fZv" "demangle.test(__vector(float\[8\]))"
    test_demangling "_D8demangle4testFNhG1dZv" "demangle.test(__vector(double\[1\]))"
    test_demangling "_D8demangle4testFNhG2dZv" "demangle.test(__vector(double\[2\]))"
    test_demangling "_D8demangle4testFNhG4dZv" "demangle.test(__vector(double\[4\]))"

    test_demangling "_D8demangle4testFC5classZv" "demangle.test(class)"
    test_demangling "_D8demangle4testFC5class4testZv" "demangle.test(class.test)"
    test_demangling "_D8demangle4testFS6structZv" "demangle.test(struct)"
    test_demangling "_D8demangle4testFS6struct4testZv" "demangle.test(struct.test)"
    test_demangling "_D8demangle4testFE4enumZv" "demangle.test(enum)"
    test_demangling "_D8demangle4testFE4enum4testZv" "demangle.test(enum.test)"
    test_demangling "_D8demangle4testFT7typedefZv" "demangle.test(typedef)"
    test_demangling "_D8demangle4testFT7typedef4testZv" "demangle.test(typedef.test)"

    test_demangling "_D8demangle4testFIaZv" "demangle.test(in char)"
    test_demangling "_D8demangle4testFIKaZv" "demangle.test(in ref char)"
    test_demangling "_D8demangle4testFJaZv" "demangle.test(out char)"
    test_demangling "_D8demangle4testFKaZv" "demangle.test(ref char)"
    test_demangling "_D8demangle4testFLaZv" "demangle.test(lazy char)"
    test_demangling "_D8demangle4testFMaZv" "demangle.test(scope char)"
    test_demangling "_D8demangle4testFaXv" "demangle.test(char...)"
    test_demangling "_D8demangle4testFaYv" "demangle.test(char, ...)"
    test_demangling "_D8demangle4testFaaYv" "demangle.test(char, char, ...)"
    test_demangling "_D8demangle4testFYv" "demangle.test(...)"
    test_demangling "_D8demangle4testFaaZv" "demangle.test(char, char)"

    test_demangling "_D8demangle4testFDFZaZv" "demangle.test(char() delegate)"
    test_demangling "_D8demangle4testFDUZaZv" "demangle.test(extern(C) char() delegate)"
    test_demangling "_D8demangle4testFDWZaZv" "demangle.test(extern(Windows) char() delegate)"
    test_demangling "_D8demangle4testFDVZaZv" "demangle.test(extern(Pascal) char() delegate)"
    test_demangling "_D8demangle4testFDRZaZv" "demangle.test(extern(C++) char() delegate)"
    test_demangling "_D8demangle4testFDYZaZv" "demangle.test(extern(Objective-C) char() delegate)"

    test_demangling "_D8demangle4testFPFZaZv" "demangle.test(char() function)"
    test_demangling "_D8demangle4testFPUZaZv" "demangle.test(extern(C) char() function)"
    test_demangling "_D8demangle4testFPWZaZv" "demangle.test(extern(Windows) char() function)"
    test_demangling "_D8demangle4testFPVZaZv" "demangle.test(extern(Pascal) char() function)"
    test_demangling "_D8demangle4testFPRZaZv" "demangle.test(extern(C++) char() function)"
    test_demangling "_D8demangle4testFPYZaZv" "demangle.test(extern(Objective-C) char() function)"

    test_demangling "_D8demangle4testFDFNaZaZv" "demangle.test(char() pure delegate)"
    test_demangling "_D8demangle4testFDFNbZaZv" "demangle.test(char() nothrow delegate)"
    test_demangling "_D8demangle4testFDFNcZaZv" "demangle.test(char() ref delegate)"
    test_demangling "_D8demangle4testFDFNdZaZv" "demangle.test(char() @property delegate)"
    test_demangling "_D8demangle4testFDFNeZaZv" "demangle.test(char() @trusted delegate)"
    test_demangling "_D8demangle4testFDFNfZaZv" "demangle.test(char() @safe delegate)"

    test_demangling "_D8demangle4testFPFNaZaZv" "demangle.test(char() pure function)"
    test_demangling "_D8demangle4testFPFNbZaZv" "demangle.test(char() nothrow function)"
    test_demangling "_D8demangle4testFPFNcZaZv" "demangle.test(char() ref function)"
    test_demangling "_D8demangle4testFPFNdZaZv" "demangle.test(char() @property function)"
    test_demangling "_D8demangle4testFPFNeZaZv" "demangle.test(char() @trusted function)"
    test_demangling "_D8demangle4testFPFNfZaZv" "demangle.test(char() @safe function)"
    test_demangling "_D8demangle4testFPFNaNbZaZv" "demangle.test(char() pure nothrow function)"
    test_demangling "_D8demangle4testFPFNbNaZaZv" "demangle.test(char() nothrow pure function)"
    test_demangling "_D8demangle4testFPFNdNfNaZaZv" "demangle.test(char() @property @safe pure function)"

    test_demangling "_D8demangle4test6__vtblZ" "vtable for demangle.test"
    test_demangling "_D8demangle4test6__initZ" "initializer for demangle.test"
    test_demangling "_D8demangle4test12__ModuleInfoZ" "ModuleInfo for demangle.test"
    test_demangling "_D8demangle4test7__ClassZ" "ClassInfo for demangle.test"
    test_demangling "_D8demangle4test11__InterfaceZ" "Interface for demangle.test"

    test_demangling "_D8demangle4test6__ctorMFZv" "demangle.test.this()"
    test_demangling "_D8demangle4test6__dtorMFZv" "demangle.test.~this()"
    test_demangling "_D8demangle4test10__postblitMFZv" "demangle.test.this(this)"

    test_demangling "_D8demangle4testFHAbaZv" "demangle.test(char\[bool\[\]\])"
    test_demangling "_D8demangle4testFHG42caZv" "demangle.test(char\[creal\[42\]\])"
    test_demangling "_D8demangle4testFAiXv" "demangle.test(int\[\]...)"
    test_demangling "_D8demangle4testFLAiXv" "demangle.test(lazy int\[\]...)"
    test_demangling "_D8demangle4testFAiYv" "demangle.test(int\[\], ...)"
    test_demangling "_D8demangle4testFLAiYv" "demangle.test(lazy int\[\], ...)"
    test_demangling "_D8demangle4testFLilZv" "demangle.test(lazy int, long)"
    test_demangling "_D8demangle4testFLliZv" "demangle.test(lazy long, int)"

    test_demangling "_D8demangle4testPFLAiYi" "demangle.test"
    test_demangling "_D1a1bi" "a.b"
    test_demangling "_D1a1bPFiZi" "a.b"
    test_demangling "_D4test3fooAa" "test.foo"
    test_demangling "_D4test2dgDFiYd" "test.dg"
    test_demangling "_D8demangle8demangleFAaZAa" "demangle.demangle(char\[\])"
    test_demangling "_D6object6Object8opAssignFC6ObjectZi" "object.Object.opAssign(Object)"
    test_demangling "_D6object6Object8opEqualsFC6ObjectZi" "object.Object.opEquals(Object)"
    test_demangling "_D8demangle4testFLC6ObjectLDFLiZiZi" "demangle.test(lazy Object, lazy int(lazy int) delegate)"
    test_demangling "_D6plugin8generateFiiZAya" "plugin.generate(int, int)"
    test_demangling "_D8demangle3fnAFZ3fnBMFZv" "demangle.fnA().fnB()"
    test_demangling "_D8demangle4mainFZ1S3fnCMFZv" "demangle.main().S.fnC()"
    test_demangling "_D8demangle4mainFZ1S3fnDMFZv" "demangle.main().S.fnD()"
    test_demangling "_D8demangle2fnFNgiZNgi" "demangle.fn(inout(int))"
    test_demangling "_D8demangle4mainFZ5localMFZi" "demangle.main().local()"
    test_demangling "_D3std5ascii9uppercaseyAa" "std.ascii.uppercase"
    test_demangling "_D3std6stream9BOMEndianyG5E3std6system6Endian" "std.stream.BOMEndian"
    test_demangling "_D3std8internal7uni_tab10unicodeNkoyS3std8internal3uni12CodepointSet" "std.internal.uni_tab.unicodeNko"
    test_demangling "_D2gc2gc2GC6addrOfMFPvZPv" "gc.gc.GC.addrOf(void*)"
    test_demangling "_D3std7process10setCLOEXECFibZv" "std.process.setCLOEXEC(int, bool)"
    test_demangling "_D3std6digest2md3MD53putMFNaNbNeMAxhXv" "std.digest.md.MD5.put(scope const(ubyte)\[\]...)"
    test_demangling "_D3std6mmfile6MmFile13opIndexAssignMFhmZh" "std.mmfile.MmFile.opIndexAssign(ubyte, ulong)"
    test_demangling "_D3std7process18escapeShellCommandFxAAaXAya" "std.process.escapeShellCommand(const(char\[\]\[\])...)"
    test_demangling "_D4core4sync5mutex5Mutex6__ctorMFC6ObjectZC4core4sync5mutex5Mutex" "core.sync.mutex.Mutex.this(Object)"
    test_demangling "_D6object14TypeInfo_Array8argTypesMFNbNfJC8TypeInfoJC8TypeInfoZi" "object.TypeInfo_Array.argTypes(out TypeInfo, out TypeInfo)"
    test_demangling "_D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ7tryExecMFMDFZvZv" "rt.dmain2._d_run_main(int, char**, extern(C) int(char\[\]\[\]) function).tryExec(scope void() delegate)"
    test_demangling "_D6object9Exception6__ctorMFNaNbNfAyaAyamC6object9ThrowableZC9Exception" "object.Exception.this(immutable(char)\[\], immutable(char)\[\], ulong, object.Throwable)"
    test_demangling "_D3gcc3deh17parse_lsda_headerFPS3gcc6unwind7generic15_Unwind_ContextPhPS3gcc3deh16lsda_header_infoZPh" "gcc.deh.parse_lsda_header(gcc.unwind.generic._Unwind_Context*, ubyte*, gcc.deh.lsda_header_info*)"
    test_demangling "_D3std6socket23UnknownAddressReference6__ctorMFPS4core3sys5posix3sys6socket8sockaddrkZC3std6socket23UnknownAddressReference" "std.socket.UnknownAddressReference.this(core.sys.posix.sys.socket.sockaddr*, uint)"
}

# Start with a fresh gdb.

gdb_exit
gdb_start

if [set_lang_d] {
    gdb_test_no_output "set width 0"

    test_d_demangling

    # Verify we can specify the d language to demangle.
    gdb_test_exact "demangle -l d -- _Dmain" "D main"
} else {
    warning "D demangling tests suppressed."
}
