public void Setup() { this.rootPath = $"{TestContext.CurrentContext.TestDirectory}/{Path.GetRandomFileName()}"; Directory.CreateDirectory(this.rootPath); this.sharedLogDirectory = $"{this.rootPath}/SharedLogs"; Directory.CreateDirectory(this.sharedLogDirectory); this.original = new FasterTestInstance(); this.clone = new FasterTestInstance(); }
public void Setup() { this.rootPath = TestUtils.MethodTestDir; TestUtils.RecreateDirectory(this.rootPath); this.sharedLogDirectory = $"{this.rootPath}/SharedLogs"; Directory.CreateDirectory(this.sharedLogDirectory); this.original = new FasterTestInstance(); this.clone = new FasterTestInstance(); }
private void Test(FasterTestInstance fasterInstance, Guid checkpointToken) { var checkpointInfo = default(HybridLogRecoveryInfo); checkpointInfo.Recover(checkpointToken, new DeviceLogCommitCheckpointManager( new LocalStorageNamedDeviceFactory(), new DefaultCheckpointNamingScheme( new DirectoryInfo(fasterInstance.CheckpointDirectory).FullName))); // Create array for reading var inputArray = new AdInput[numUniqueKeys]; for (int i = 0; i < numUniqueKeys; i++) { inputArray[i].adId.adId = i; inputArray[i].numClicks.numClicks = 0; } var input = default(AdInput); var output = default(Output); using var session = fasterInstance.Faster.NewSession(new Functions()); // Issue read requests for (var i = 0; i < numUniqueKeys; i++) { var status = session.Read(ref inputArray[i].adId, ref input, ref output, Empty.Default, i); Assert.IsTrue(status == Status.OK); inputArray[i].numClicks = output.value; } // Complete all pending requests session.CompletePending(true); // Compute expected array long[] expected = new long[numUniqueKeys]; foreach (var guid in checkpointInfo.continueTokens.Keys) { var sno = checkpointInfo.continueTokens[guid].UntilSerialNo; for (long i = 0; i <= sno; i++) { var id = i % numUniqueKeys; expected[id]++; } } int threadCount = 1; // single threaded test int numCompleted = threadCount - checkpointInfo.continueTokens.Count; for (int t = 0; t < numCompleted; t++) { var sno = numOps; for (long i = 0; i < sno; i++) { var id = i % numUniqueKeys; expected[id]++; } } // Assert that expected is same as found for (long i = 0; i < numUniqueKeys; i++) { Assert.IsTrue( expected[i] == inputArray[i].numClicks.numClicks, "Debug error for AdId {0}: Expected ({1}), Found({2})", inputArray[i].adId.adId, expected[i], inputArray[i].numClicks.numClicks); } }
private void Test(FasterTestInstance fasterInstance, Guid checkpointToken) { var checkpointInfo = default(HybridLogRecoveryInfo); Assert.IsTrue(checkpointInfo.Recover(checkpointToken, new DirectoryConfiguration(fasterInstance.CheckpointDirectory))); // Create array for reading var inputArray = new Input[numUniqueKeys]; for (int i = 0; i < numUniqueKeys; i++) { inputArray[i].adId.adId = i; inputArray[i].numClicks.numClicks = 0; } var input = default(Input); var output = default(Output); // Issue read requests for (var i = 0; i < numUniqueKeys; i++) { var status = fasterInstance.Faster.Read(ref inputArray[i].adId, ref input, ref output, Empty.Default, i); Assert.IsTrue(status == Status.OK); inputArray[i].numClicks = output.value; } // Complete all pending requests fasterInstance.Faster.CompletePending(true); // Compute expected array long[] expected = new long[numUniqueKeys]; foreach (var guid in checkpointInfo.continueTokens.Keys) { var sno = checkpointInfo.continueTokens[guid]; for (long i = 0; i <= sno; i++) { var id = i % numUniqueKeys; expected[id]++; } } int threadCount = 1; // single threaded test int numCompleted = threadCount - checkpointInfo.continueTokens.Count; for (int t = 0; t < numCompleted; t++) { var sno = numOps; for (long i = 0; i < sno; i++) { var id = i % numUniqueKeys; expected[id]++; } } // Assert that expected is same as found for (long i = 0; i < numUniqueKeys; i++) { Assert.IsTrue( expected[i] == inputArray[i].numClicks.numClicks, "Debug error for AdId {0}: Expected ({1}), Found({2})", inputArray[i].adId.adId, expected[i], inputArray[i].numClicks.numClicks); } }