Skip to content

Instantly share code, notes, and snippets.

@nebrius
Last active December 14, 2015 05:19
Show Gist options
  • Save nebrius/5034741 to your computer and use it in GitHub Desktop.
Save nebrius/5034741 to your computer and use it in GitHub Desktop.

Automatic runs (build/clean/etc)

Purpose: to find runtime errors and warnings, including warnings from things like ti-api-deprecation-finder Goals/Features:

  • Fast runs
  • Report errors and warnings only. No other information should be reported
    • This information will be reported in the "problems" tab in studio
  • Single profile/set of options for all runs Profile:
  • Options:
    • invokeMethods = false
    • evaluateLoops = false
    • logConsoleCalls = false
    • processUnvisitedCode = true
  • Plugins w/ their options:
    • common-globals
    • require-provider
      • platform
      • modules
    • ti-api-processor
      • platform
      • sdkPath
    • ti-api-deprecation-finder
    • ti-api-platform-validator
      • platform

Manual runs

Purpose: To allow users to investigate their projects using any/all available features of the code processor Goals/Features:

  • Provide a set of "use cases", such as "API usage", "Platform portability" (a.k.a. port score), "Find Problems" (as in automatic runs)
    • Defines which plugins to use
  • Each "use case" should have "profiles", a.k.a. "process everything", "process accurately", etc
    • Each profile will be a collection of options
  • Use cases and profiles should be configurable
  • Users should be able to create new use cases and profiles
  • Output varies
    • There will be information reported in the "problems" tab, as in automatic runs
    • There will be other information to report via an HTML page (Path to results html file is set in plugin configuration)
    • There will be annotated code to show (v3.2, not necessary to implement now)

###Use cases

  • API usage - High Speed, Low Accuracy, High Coverage
    • common-globals
    • require-provider
      • platform
    • ti-api-processor
      • SDK path
      • platform
    • ti-api-usage-finder
  • Find Problems (Fast) - High Speed, Low Accuracy, High Coverage
    • common-globals
    • require-provider
      • platform
    • ti-api-processor
      • SDK path
      • platform
    • ti-api-platform-validator
    • ti-api-deprecation-finder
  • Find Problems (Slow) - Low Speed, Medium Accuracy, High Coverage
    • common-globals
    • require-provider
      • platform
    • ti-api-processor
      • SDK path
      • platform
    • ti-api-platform-validator
      • platform
    • ti-api-deprecation-finder
  • Project score - Medium Speed, High Accuracy, Low Coverage
    • common-globals
    • require-provider
      • platform
    • ti-api-processor
      • SDK path
      • platform
    • ti-api-project-score

###Profiles

  • High Speed, Low Accuracy, High Coverage
    • invokeMethods = false
    • evaluateLoops = false
    • maxLoopIterations = 1000000 (default)
    • maxRecursionLimit = 1000 (default)
    • logConsoleCalls = false
    • nativeExceptionRecovery = true (default)
    • executionTimeLimit = 0 (default)
    • exactMode = false (default)
    • processUnvisitedCode = true
  • Medium Speed, High Accuracy, Low Coverage
    • invokeMethods = true (default)
    • evaluateLoops = true (default)
    • maxLoopIterations = 1000000 (default)
    • maxRecursionLimit = 1000 (default)
    • logConsoleCalls = false
    • nativeExceptionRecovery = true (default)
    • executionTimeLimit = 0 (default)
    • exactMode = false (default)
    • processUnvisitedCode = false (default)
  • Low Speed, Medium Accuracy, High Coverage
    • invokeMethods = true (default)
    • evaluateLoops = true (default)
    • maxLoopIterations = 1000000 (default)
    • maxRecursionLimit = 1000 (default)
    • logConsoleCalls = false
    • nativeExceptionRecovery = true (default)
    • executionTimeLimit = 0 (default)
    • exactMode = false (default)
    • processUnvisitedCode = true

Data returned

{
	"errors": [],
	"warnings": [],
	"resultsPath": ""
	"plugins": {
		"ti-api-project-score": {
		}
	}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment