Skip to content

Commit

Permalink
fix: getmetrics test due to this is environment-dependent test (#80)
Browse files Browse the repository at this point in the history
* fix: GetMetrics test to be less strict

* fix: get_metrics test to be less strict

* revert: SizeMemoryCache
  • Loading branch information
Expotential108 committed Nov 29, 2022
1 parent bde73e3 commit f9d2844
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 116 deletions.
93 changes: 41 additions & 52 deletions api/lib_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -197,12 +197,11 @@ func TestGetMetrics(t *testing.T) {

// GetMetrics 3
metrics, err = GetMetrics(cache)
require.NoError(t, err)
assert.Equal(t, &types.Metrics{
HitsFsCache: 1,
ElementsMemoryCache: 1,
SizeMemoryCache: 5665691,
}, metrics)
assert.NoError(t, err)
require.Equal(t, uint32(0), metrics.HitsMemoryCache)
require.Equal(t, uint32(1), metrics.HitsFsCache)
require.Equal(t, uint64(1), metrics.ElementsMemoryCache)
require.InEpsilon(t, 5665691, metrics.SizeMemoryCache, 0.18)

// Instantiate 2
msg2 := []byte(`{"verifier": "fred", "beneficiary": "susi"}`)
Expand All @@ -211,29 +210,25 @@ func TestGetMetrics(t *testing.T) {

// GetMetrics 4
metrics, err = GetMetrics(cache)
require.NoError(t, err)
assert.Equal(t, &types.Metrics{
HitsMemoryCache: 1,
HitsFsCache: 1,
ElementsMemoryCache: 1,
SizeMemoryCache: 5665691,
}, metrics)
assert.NoError(t, err)
require.Equal(t, uint32(1), metrics.HitsMemoryCache)
require.Equal(t, uint32(1), metrics.HitsFsCache)
require.Equal(t, uint64(1), metrics.ElementsMemoryCache)
require.InEpsilon(t, 5665691, metrics.SizeMemoryCache, 0.18)

// Pin
err = Pin(cache, checksum)
require.NoError(t, err)

// GetMetrics 5
metrics, err = GetMetrics(cache)
require.NoError(t, err)
assert.Equal(t, &types.Metrics{
HitsMemoryCache: 2,
HitsFsCache: 1,
ElementsPinnedMemoryCache: 1,
ElementsMemoryCache: 1,
SizePinnedMemoryCache: 5665691,
SizeMemoryCache: 5665691,
}, metrics)
assert.NoError(t, err)
require.Equal(t, uint32(2), metrics.HitsMemoryCache)
require.Equal(t, uint32(1), metrics.HitsFsCache)
require.Equal(t, uint64(1), metrics.ElementsPinnedMemoryCache)
require.Equal(t, uint64(1), metrics.ElementsMemoryCache)
require.InEpsilon(t, 5665691, metrics.SizePinnedMemoryCache, 0.18)
require.InEpsilon(t, 5665691, metrics.SizeMemoryCache, 0.18)

// Instantiate 3
msg3 := []byte(`{"verifier": "fred", "beneficiary": "bert"}`)
Expand All @@ -242,33 +237,29 @@ func TestGetMetrics(t *testing.T) {

// GetMetrics 6
metrics, err = GetMetrics(cache)
require.NoError(t, err)
assert.Equal(t, &types.Metrics{
HitsPinnedMemoryCache: 1,
HitsMemoryCache: 2,
HitsFsCache: 1,
ElementsPinnedMemoryCache: 1,
ElementsMemoryCache: 1,
SizePinnedMemoryCache: 5665691,
SizeMemoryCache: 5665691,
}, metrics)
assert.NoError(t, err)
require.Equal(t, uint32(1), metrics.HitsPinnedMemoryCache)
require.Equal(t, uint32(2), metrics.HitsMemoryCache)
require.Equal(t, uint32(1), metrics.HitsFsCache)
require.Equal(t, uint64(1), metrics.ElementsPinnedMemoryCache)
require.Equal(t, uint64(1), metrics.ElementsMemoryCache)
require.InEpsilon(t, 5665691, metrics.SizePinnedMemoryCache, 0.18)
require.InEpsilon(t, 5665691, metrics.SizeMemoryCache, 0.18)

// Unpin
err = Unpin(cache, checksum)
require.NoError(t, err)

// GetMetrics 7
metrics, err = GetMetrics(cache)
require.NoError(t, err)
assert.Equal(t, &types.Metrics{
HitsPinnedMemoryCache: 1,
HitsMemoryCache: 2,
HitsFsCache: 1,
ElementsPinnedMemoryCache: 0,
ElementsMemoryCache: 1,
SizePinnedMemoryCache: 0,
SizeMemoryCache: 5665691,
}, metrics)
assert.NoError(t, err)
require.Equal(t, uint32(1), metrics.HitsPinnedMemoryCache)
require.Equal(t, uint32(2), metrics.HitsMemoryCache)
require.Equal(t, uint32(1), metrics.HitsFsCache)
require.Equal(t, uint64(0), metrics.ElementsPinnedMemoryCache)
require.Equal(t, uint64(1), metrics.ElementsMemoryCache)
require.Equal(t, uint64(0), metrics.SizePinnedMemoryCache)
require.InEpsilon(t, 5665691, metrics.SizeMemoryCache, 0.18)

// Instantiate 4
msg4 := []byte(`{"verifier": "fred", "beneficiary": "jeff"}`)
Expand All @@ -277,16 +268,14 @@ func TestGetMetrics(t *testing.T) {

// GetMetrics 8
metrics, err = GetMetrics(cache)
require.NoError(t, err)
assert.Equal(t, &types.Metrics{
HitsPinnedMemoryCache: 1,
HitsMemoryCache: 3,
HitsFsCache: 1,
ElementsPinnedMemoryCache: 0,
ElementsMemoryCache: 1,
SizePinnedMemoryCache: 0,
SizeMemoryCache: 5665691,
}, metrics)
assert.NoError(t, err)
require.Equal(t, uint32(1), metrics.HitsPinnedMemoryCache)
require.Equal(t, uint32(3), metrics.HitsMemoryCache)
require.Equal(t, uint32(1), metrics.HitsFsCache)
require.Equal(t, uint64(0), metrics.ElementsPinnedMemoryCache)
require.Equal(t, uint64(1), metrics.ElementsMemoryCache)
require.Equal(t, uint64(0), metrics.SizePinnedMemoryCache)
require.InEpsilon(t, 5665691, metrics.SizeMemoryCache, 0.18)
}

func TestInstantiate(t *testing.T) {
Expand Down
93 changes: 41 additions & 52 deletions lib_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -132,12 +132,11 @@ func TestGetMetrics(t *testing.T) {

// GetMetrics 3
metrics, err = vm.GetMetrics()
require.NoError(t, err)
assert.Equal(t, &types.Metrics{
HitsFsCache: 1,
ElementsMemoryCache: 1,
SizeMemoryCache: 5665691,
}, metrics)
assert.NoError(t, err)
require.Equal(t, uint32(0), metrics.HitsMemoryCache)
require.Equal(t, uint32(1), metrics.HitsFsCache)
require.Equal(t, uint64(1), metrics.ElementsMemoryCache)
require.InEpsilon(t, 5665691, metrics.SizeMemoryCache, 0.18)

// Instantiate 2
msg2 := []byte(`{"verifier": "fred", "beneficiary": "susi"}`)
Expand All @@ -147,29 +146,25 @@ func TestGetMetrics(t *testing.T) {

// GetMetrics 4
metrics, err = vm.GetMetrics()
require.NoError(t, err)
assert.Equal(t, &types.Metrics{
HitsMemoryCache: 1,
HitsFsCache: 1,
ElementsMemoryCache: 1,
SizeMemoryCache: 5665691,
}, metrics)
assert.NoError(t, err)
require.Equal(t, uint32(1), metrics.HitsMemoryCache)
require.Equal(t, uint32(1), metrics.HitsFsCache)
require.Equal(t, uint64(1), metrics.ElementsMemoryCache)
require.InEpsilon(t, 5665691, metrics.SizeMemoryCache, 0.18)

// Pin
err = vm.Pin(checksum)
require.NoError(t, err)

// GetMetrics 5
metrics, err = vm.GetMetrics()
require.NoError(t, err)
assert.Equal(t, &types.Metrics{
HitsMemoryCache: 2,
HitsFsCache: 1,
ElementsPinnedMemoryCache: 1,
ElementsMemoryCache: 1,
SizePinnedMemoryCache: 5665691,
SizeMemoryCache: 5665691,
}, metrics)
assert.NoError(t, err)
require.Equal(t, uint32(2), metrics.HitsMemoryCache)
require.Equal(t, uint32(1), metrics.HitsFsCache)
require.Equal(t, uint64(1), metrics.ElementsPinnedMemoryCache)
require.Equal(t, uint64(1), metrics.ElementsMemoryCache)
require.InEpsilon(t, 5665691, metrics.SizePinnedMemoryCache, 0.18)
require.InEpsilon(t, 5665691, metrics.SizeMemoryCache, 0.18)

// Instantiate 3
msg3 := []byte(`{"verifier": "fred", "beneficiary": "bert"}`)
Expand All @@ -179,33 +174,29 @@ func TestGetMetrics(t *testing.T) {

// GetMetrics 6
metrics, err = vm.GetMetrics()
require.NoError(t, err)
assert.Equal(t, &types.Metrics{
HitsPinnedMemoryCache: 1,
HitsMemoryCache: 2,
HitsFsCache: 1,
ElementsPinnedMemoryCache: 1,
ElementsMemoryCache: 1,
SizePinnedMemoryCache: 5665691,
SizeMemoryCache: 5665691,
}, metrics)
assert.NoError(t, err)
require.Equal(t, uint32(1), metrics.HitsPinnedMemoryCache)
require.Equal(t, uint32(2), metrics.HitsMemoryCache)
require.Equal(t, uint32(1), metrics.HitsFsCache)
require.Equal(t, uint64(1), metrics.ElementsPinnedMemoryCache)
require.Equal(t, uint64(1), metrics.ElementsMemoryCache)
require.InEpsilon(t, 5665691, metrics.SizePinnedMemoryCache, 0.18)
require.InEpsilon(t, 5665691, metrics.SizeMemoryCache, 0.18)

// Unpin
err = vm.Unpin(checksum)
require.NoError(t, err)

// GetMetrics 7
metrics, err = vm.GetMetrics()
require.NoError(t, err)
assert.Equal(t, &types.Metrics{
HitsPinnedMemoryCache: 1,
HitsMemoryCache: 2,
HitsFsCache: 1,
ElementsPinnedMemoryCache: 0,
ElementsMemoryCache: 1,
SizePinnedMemoryCache: 0,
SizeMemoryCache: 5665691,
}, metrics)
assert.NoError(t, err)
require.Equal(t, uint32(1), metrics.HitsPinnedMemoryCache)
require.Equal(t, uint32(2), metrics.HitsMemoryCache)
require.Equal(t, uint32(1), metrics.HitsFsCache)
require.Equal(t, uint64(0), metrics.ElementsPinnedMemoryCache)
require.Equal(t, uint64(1), metrics.ElementsMemoryCache)
require.Equal(t, uint64(0), metrics.SizePinnedMemoryCache)
require.InEpsilon(t, 5665691, metrics.SizeMemoryCache, 0.18)

// Instantiate 4
msg4 := []byte(`{"verifier": "fred", "beneficiary": "jeff"}`)
Expand All @@ -215,14 +206,12 @@ func TestGetMetrics(t *testing.T) {

// GetMetrics 8
metrics, err = vm.GetMetrics()
require.NoError(t, err)
assert.Equal(t, &types.Metrics{
HitsPinnedMemoryCache: 1,
HitsMemoryCache: 3,
HitsFsCache: 1,
ElementsPinnedMemoryCache: 0,
ElementsMemoryCache: 1,
SizePinnedMemoryCache: 0,
SizeMemoryCache: 5665691,
}, metrics)
assert.NoError(t, err)
require.Equal(t, uint32(1), metrics.HitsPinnedMemoryCache)
require.Equal(t, uint32(3), metrics.HitsMemoryCache)
require.Equal(t, uint32(1), metrics.HitsFsCache)
require.Equal(t, uint64(0), metrics.ElementsPinnedMemoryCache)
require.Equal(t, uint64(1), metrics.ElementsMemoryCache)
require.Equal(t, uint64(0), metrics.SizePinnedMemoryCache)
require.InEpsilon(t, 5665691, metrics.SizeMemoryCache, 0.18)
}
39 changes: 27 additions & 12 deletions libwasmvm/src/cache.rs
Original file line number Diff line number Diff line change
Expand Up @@ -693,19 +693,34 @@ mod tests {
let mut error_msg = UnmanagedVector::default();
let metrics = get_metrics(cache_ptr, Some(&mut error_msg));
let _ = error_msg.consume();
assert_eq!(
metrics,
Metrics {
hits_pinned_memory_cache: 0,
hits_memory_cache: 0,
hits_fs_cache: 1,
misses: 0,
elements_pinned_memory_cache: 1,
elements_memory_cache: 0,
size_pinned_memory_cache: 5665691,
size_memory_cache: 0,
}
let Metrics {
hits_pinned_memory_cache,
hits_memory_cache,
hits_fs_cache,
misses,
elements_pinned_memory_cache,
elements_memory_cache,
size_pinned_memory_cache,
size_memory_cache,
} = metrics;
assert_eq!(hits_pinned_memory_cache, 0);
assert_eq!(hits_memory_cache, 0);
assert_eq!(hits_fs_cache, 1);
assert_eq!(misses, 0);
assert_eq!(elements_pinned_memory_cache, 1);
assert_eq!(elements_memory_cache, 0);
let expected = 5665691; // +/- 20%
assert!(
size_pinned_memory_cache > expected * 80 / 100,
"size_pinned_memory_cache: {}",
size_pinned_memory_cache
);
assert!(
size_pinned_memory_cache < expected * 120 / 100,
"size_pinned_memory_cache: {}",
size_pinned_memory_cache
);
assert_eq!(size_memory_cache, 0);

// Unpin
let mut error_msg = UnmanagedVector::default();
Expand Down

0 comments on commit f9d2844

Please sign in to comment.