linux-packaging-mono/mono/tests/test-inline-call-stack-library.cs
Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

103 lines
2.1 KiB
C#

using System;
using System.Diagnostics;
using System.Reflection;
namespace Library {
public class StaticFlag {
private static bool _flag = false;
public static bool Flag {
get {
return _flag;
}
set {
_flag = value;
}
}
}
public class CallingAssemblyDependant {
private string _calledFrom;
public string CalledFrom {
get {
return _calledFrom;
}
}
public CallingAssemblyDependant () {
_calledFrom = Assembly.GetCallingAssembly ().GetName ().Name;
}
public static string CalledFromLibrary () {
return new CallingAssemblyDependant ().CalledFrom;
}
}
public class ResourceRelaxedFieldInit {
private static ResourceRelaxedFieldInit _singleResource = new ResourceRelaxedFieldInit ();
public static ResourceRelaxedFieldInit Single {
get {
return _singleResource;
}
}
private bool _flag;
public bool Flag {
get {
return _flag;
}
}
public ResourceRelaxedFieldInit () {
_flag = StaticFlag.Flag;
}
}
public class ResourceStrictFieldInit {
private static ResourceStrictFieldInit _singleResource = new ResourceStrictFieldInit ();
public static ResourceStrictFieldInit Single {
get {
return _singleResource;
}
}
private bool _flag;
public bool Flag {
get {
return _flag;
}
}
public ResourceStrictFieldInit () {
_flag = StaticFlag.Flag;
}
static ResourceStrictFieldInit () {
}
}
public class InlinedMethods {
public static MethodBase GetCurrentMethod () {
return MethodBase.GetCurrentMethod ();
}
public static Assembly GetExecutingAssembly () {
return Assembly.GetExecutingAssembly ();
}
public static Assembly GetCallingAssembly () {
return Assembly.GetCallingAssembly ();
}
public static Assembly CallCallingAssembly () {
return GetCallingAssembly ();
}
public static StackFrame GetStackFrame () {
return new StackFrame ();
}
public static ResourceRelaxedFieldInit GetResourceRelaxedFieldInit () {
return ResourceRelaxedFieldInit.Single;
}
public static ResourceStrictFieldInit GetResourceStrictFieldInit () {
return ResourceStrictFieldInit.Single;
}
}
}