1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 12:32:20 +02:00

New tests

This commit is contained in:
Brian Fiete 2019-11-30 13:18:07 -08:00
parent a4476332fe
commit cbae124dd5
4 changed files with 94 additions and 5 deletions

View file

@ -56,7 +56,7 @@ struct StructB
};
struct [[nodiscard]] StructA
struct StructA
{
StructB* mSB;
@ -72,7 +72,6 @@ struct [[nodiscard]] StructA
}
};
[[nodiscard]]
int GetVal()
{
return 9;
@ -83,20 +82,78 @@ StructA GetSA()
return StructA();
}
int Zorq()
{
int zaf = 123;
return 0;
}
struct Base
{
int32_t mA;
int64_t mB;
};
struct Derived : Base
{
int8_t mC;
int GetC()
{
return mC + 10000;
}
};
struct Int
{
int64_t mVal;
};
void Zorq2()
{
Derived dr;
dr.mA = 1;
dr.mB = 2;
dr.mC = 3;
dr.GetC();
Int iVal;
iVal.mVal = 88;
int64_t q = 999;
}
void Zorq3()
{
Derived dr;
dr.mA = 1;
dr.mB = 2;
dr.mC = 3;
Int iVal;
iVal.mVal = 88;
int64_t q = 999;
}
// THIS IS VERSION 6.
extern "C"
__declspec(dllexport) void Test2(int aa, int bb, int cc, int dd)
{
Zorq();
Zorq2();
Zorq3();
GetVal();
GetSA();
//Sleep(10000);
int zed = 999;
StructA sa;
sa.mSB = NULL;
Sleep(200);
sa.GetVal();
sa.GetWithSleep();
//sa.GetVal();
//sa.GetWithSleep();
//auto val = sa.mSB->mStr;
std::string str = "Hey Dude";

View file

@ -23,6 +23,8 @@ namespace IDETest
Derived dr = .();
Int iVal = (.)123;
int q = 999;
//Test_End
}
}

View file

@ -31,9 +31,17 @@ class LibClassA
{
return 9;
}
public static int GetVal3(Object obj)
{
return 30;
}
}
class LibClassB
{
//public uint8* mA = append uint8[10];
public static int DoGetVal3<T>(T val)
{
return LibClassA.GetVal3(val);
}
}

View file

@ -1,3 +1,5 @@
#pragma warning disable 168
using System;
namespace System.Collections.Generic
@ -24,6 +26,14 @@ namespace System.Collections.Generic
}
}
extension LibClassA
{
public static int GetVal3<T>(T val)
{
return 31;
}
}
namespace Tests
{
class Extensions
@ -170,5 +180,17 @@ namespace Tests
Test.Assert(ca.LibB_GetB() == 8);
Test.Assert(ca.LibC_GetB() == 30013);
}
[Test]
public static void TestExtensionOverride()
{
int a = 123;
int directResult = LibClassA.GetVal3(a);
Test.Assert(directResult == 31);
// This should only call the LibA version since the LibA:LibClassB.DoGetVal3 won't have
// access to call the Tests:LibClassB.DoGetVal3
int indirectResult = LibClassB.DoGetVal3(a);
Test.Assert(directResult == 30);
}
}
}