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

39 lines
755 B
C#

using System;
using System.Reflection;
using System.Threading.Tasks;
using System.Runtime.CompilerServices;
using System.Linq;
namespace N.M
{
class C
{
public static async Task<int> AsyncMethod ()
{
await Task.Delay (1);
return 0;
}
public static int Main ()
{
var m = typeof (C).GetMethod ("AsyncMethod");
var attr = m.GetCustomAttribute<AsyncStateMachineAttribute> ();
if (attr == null)
return 1;
if (attr.StateMachineType == null)
return 2;
Func<Task<int>> a = async () => await AsyncMethod ();
var c = typeof (C).GetMethods (BindingFlags.NonPublic | BindingFlags.Static).Where (l =>
l.IsDefined (typeof (AsyncStateMachineAttribute))).Count ();
if (c != 1)
return 3;
return 0;
}
}
}