From 120e865e0d4e4ef6f878ecc904c393c709f05574 Mon Sep 17 00:00:00 2001 From: SteveGilham Date: Thu, 18 Jul 2024 14:15:17 +0100 Subject: [PATCH] Starting to work! --- AltCover.Async/Instance.cs | 5 +++++ AltCover.Engine/Instrument.fs | 4 +++- AltCover.Recorder/Recorder.cs | 7 +++++-- AltCover.Tests/Tests.fs | 8 ++++---- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/AltCover.Async/Instance.cs b/AltCover.Async/Instance.cs index 74aec14b..3177ac51 100644 --- a/AltCover.Async/Instance.cs +++ b/AltCover.Async/Instance.cs @@ -12,6 +12,11 @@ namespace AltCover.Recorder; public static class Instance { + //internal static IEnumerable Modules + //{ + // get { return new string[] { "a", "b", "c", "d" }; } + //} + public static class I { internal static class CallTrack diff --git a/AltCover.Engine/Instrument.fs b/AltCover.Engine/Instrument.fs index f6a85a45..915762d9 100644 --- a/AltCover.Engine/Instrument.fs +++ b/AltCover.Engine/Instrument.fs @@ -1363,7 +1363,7 @@ module internal Instrument = [ worker.Create(OpCodes.Dup) worker.Create(OpCodes.Ldc_I4, i) worker.Create(OpCodes.Ldstr, k) - worker.Create(OpCodes.Stelem_Any, stringtype) ] + worker.Create(OpCodes.Stelem_Ref) ] bulkInsertBefore worker head addElement true |> ignore) @@ -1372,6 +1372,8 @@ module internal Instrument = [ worker.Create(OpCodes.Stsfld, head.Operand :?> FieldReference) ] bulkInsertBefore worker head store true |> ignore + let re = [ worker.Create OpCodes.Ret ] + bulkInsertBefore worker head re true |> ignore let recorderFileName = (extractName state.RecordingAssembly) + ".dll" diff --git a/AltCover.Recorder/Recorder.cs b/AltCover.Recorder/Recorder.cs index 117f8a18..2ac21073 100644 --- a/AltCover.Recorder/Recorder.cs +++ b/AltCover.Recorder/Recorder.cs @@ -111,9 +111,12 @@ internal static string Token /// Gets the indexed module tokens /// This property's IL code is modified to store instrumentation results /// - private static IEnumerable __modules = new string[] { string.Empty }; + private static string[] __modules = new string[] { string.Empty }; - internal static IEnumerable Modules + [SuppressMessage("Gendarme.Rules.Performance", + "AvoidReturningArraysOnPropertiesRule", + Justification = "Controlled use")] + internal static string[] Modules { #if DEBUG [SuppressMessage("Gendarme.Rules.Performance", diff --git a/AltCover.Tests/Tests.fs b/AltCover.Tests/Tests.fs index ed73bf73..24e4e463 100644 --- a/AltCover.Tests/Tests.fs +++ b/AltCover.Tests/Tests.fs @@ -3346,8 +3346,8 @@ module AltCoverTests = "set_CoverageFormat" "get_Sample" "set_Sample" - "get_modules" - "set_modules" + "get_Modules" + "set_Modules" "ToList" "#ctor" "#ctor" @@ -3401,8 +3401,8 @@ module AltCoverTests = "System.Void AltCover.Sample3.Class3+Class4.set_CoverageFormat(System.Int32)" "System.Int32 AltCover.Sample3.Class3+Class4.get_Sample()" "System.Void AltCover.Sample3.Class3+Class4.set_Sample(System.Int32)" - "System.String[] AltCover.Sample3.Class3+Class4.get_modules()" - "System.Void AltCover.Sample3.Class3+Class4.set_modules(System.String[])" + "System.String[] AltCover.Sample3.Class3+Class4.get_Modules()" + "System.Void AltCover.Sample3.Class3+Class4.set_Modules(System.String[])" "System.Collections.Generic.List`1 AltCover.Sample3.Class3+Class4.ToList(T)" "System.Void AltCover.Sample3.Class3+Class4.#ctor()" "System.String AltCover.Recorder.InstrumentationAttribute.get_Assembly()"