// Copyright 2016 Pants project contributors (see CONTRIBUTORS.md). // Licensed under the Apache License, Version 2.0 (see LICENSE). package com.twitter.intellij.pants.metrics; import com.google.common.io.Files; import com.google.gson.stream.JsonReader; import com.intellij.openapi.util.io.FileUtil; import com.twitter.intellij.pants.testFramework.OSSPantsIntegrationTest; import com.twitter.intellij.pants.util.PantsUtil; import java.io.File; import java.io.FileReader; import java.util.Map; public class MetricsIntegrationTest extends OSSPantsIntegrationTest { private File tempDir = null; @Override public void setUp() throws Exception { System.setProperty(PantsMetrics.SYSTEM_PROPERTY_METRICS_ENABLE, "true"); super.setUp(); if (PantsMetrics.getMetricsImportDir() == null) { PantsMetrics.setMetricsImportDir("examples/src/java/org/pantsbuild/example/hello"); } if (PantsMetrics.getMetricsReportDir() == null) { tempDir = Files.createTempDir(); PantsMetrics.setMetricsReportDir(tempDir.getAbsolutePath()); } } public void testMetrics() throws Exception { String importDir = PantsMetrics.getMetricsImportDir(); assertNotNull(importDir); doImport(importDir); Thread.sleep(1000); PantsMetrics.report(); String reportFilePath = PantsMetrics.getReportFilePath(); assertNotNull(reportFilePath); Map<String, Integer> result = PantsUtil.gson.fromJson(new JsonReader(new FileReader(reportFilePath)), PantsUtil.TYPE_MAP_STRING_INTEGER); assertTrue(0 <= result.get("export_second")); assertTrue(0 <= result.get("load_second")); assertTrue(0 <= result.get("indexing_second")); } @Override public void tearDown() throws Exception { System.clearProperty(PantsMetrics.SYSTEM_PROPERTY_METRICS_ENABLE); if (tempDir != null) { FileUtil.delete(tempDir); } super.tearDown(); } }