Add pslint sanity test. (#35303)

* Add pslint sanity test.

* Fix `no-smart-quotes` sanity test.

* Add docs for `pslint` sanity test.
This commit is contained in:
Matt Clay 2018-01-24 17:22:14 -08:00 committed by Matt Davis
commit e0010f15e4
7 changed files with 391 additions and 1 deletions

View file

@ -0,0 +1,196 @@
examples/scripts/ConfigureRemotingForAnsible.ps1 PSAvoidUsingCmdletAliases
examples/scripts/ConfigureRemotingForAnsible.ps1 PSUseBOMForUnicodeEncodedFile
examples/scripts/ConfigureRemotingForAnsible.ps1 PSUseShouldProcessForStateChangingFunctions
examples/scripts/upgrade_to_ps3.ps1 PSAvoidUsingWriteHost
examples/scripts/upgrade_to_ps3.ps1 PSUseApprovedVerbs
lib/ansible/module_utils/powershell/Ansible.ModuleUtils.ArgvParser.psm1 PSUseApprovedVerbs
lib/ansible/module_utils/powershell/Ansible.ModuleUtils.CommandUtil.psm1 PSPossibleIncorrectComparisonWithNull
lib/ansible/module_utils/powershell/Ansible.ModuleUtils.CommandUtil.psm1 PSUseApprovedVerbs
lib/ansible/module_utils/powershell/Ansible.ModuleUtils.FileUtil.psm1 PSProvideCommentHelp
lib/ansible/module_utils/powershell/Ansible.ModuleUtils.FileUtil.psm1 PSUseOutputTypeCorrectly
lib/ansible/module_utils/powershell/Ansible.ModuleUtils.Legacy.psm1 PSAvoidUsingCmdletAliases
lib/ansible/module_utils/powershell/Ansible.ModuleUtils.Legacy.psm1 PSAvoidUsingWMICmdlet
lib/ansible/module_utils/powershell/Ansible.ModuleUtils.Legacy.psm1 PSPossibleIncorrectComparisonWithNull
lib/ansible/module_utils/powershell/Ansible.ModuleUtils.Legacy.psm1 PSUseApprovedVerbs
lib/ansible/module_utils/powershell/Ansible.ModuleUtils.Legacy.psm1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/module_utils/powershell/Ansible.ModuleUtils.LinkUtil.psm1 PSUseApprovedVerbs
lib/ansible/module_utils/powershell/Ansible.ModuleUtils.LinkUtil.psm1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/setup.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/setup.ps1 PSAvoidUsingEmptyCatchBlock
lib/ansible/modules/windows/setup.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/setup.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_certificate_store.ps1 PSAvoidUsingPlainTextForPassword
lib/ansible/modules/windows/win_certificate_store.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_certificate_store.ps1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/win_chocolatey.ps1 PSAvoidUsingConvertToSecureStringWithPlainText
lib/ansible/modules/windows/win_chocolatey.ps1 PSAvoidUsingPlainTextForPassword
lib/ansible/modules/windows/win_chocolatey.ps1 PSAvoidUsingUserNameAndPassWordParams
lib/ansible/modules/windows/win_chocolatey.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_chocolatey.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_chocolatey.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_chocolatey.ps1 PSUseOutputTypeCorrectly
lib/ansible/modules/windows/win_copy.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_copy.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_copy.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_defrag.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_dns_client.ps1 PSAvoidGlobalVars
lib/ansible/modules/windows/win_dns_client.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_dns_client.ps1 PSAvoidUsingWMICmdlet
lib/ansible/modules/windows/win_dns_client.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_dns_client.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_dns_client.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_dns_client.ps1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/win_domain.ps1 PSAvoidUsingConvertToSecureStringWithPlainText
lib/ansible/modules/windows/win_domain.ps1 PSAvoidUsingEmptyCatchBlock
lib/ansible/modules/windows/win_domain.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_domain.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_domain_controller.ps1 PSAvoidGlobalVars
lib/ansible/modules/windows/win_domain_controller.ps1 PSAvoidUsingConvertToSecureStringWithPlainText
lib/ansible/modules/windows/win_domain_controller.ps1 PSAvoidUsingPlainTextForPassword
lib/ansible/modules/windows/win_domain_controller.ps1 PSAvoidUsingUserNameAndPassWordParams
lib/ansible/modules/windows/win_domain_controller.ps1 PSAvoidUsingWMICmdlet
lib/ansible/modules/windows/win_domain_controller.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_domain_controller.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_domain_group.ps1 PSAvoidUsingConvertToSecureStringWithPlainText
lib/ansible/modules/windows/win_domain_group.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_domain_membership.ps1 PSAvoidGlobalVars
lib/ansible/modules/windows/win_domain_membership.ps1 PSAvoidUsingConvertToSecureStringWithPlainText
lib/ansible/modules/windows/win_domain_membership.ps1 PSAvoidUsingPlainTextForPassword
lib/ansible/modules/windows/win_domain_membership.ps1 PSAvoidUsingUserNameAndPassWordParams
lib/ansible/modules/windows/win_domain_membership.ps1 PSAvoidUsingWMICmdlet
lib/ansible/modules/windows/win_domain_membership.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_domain_membership.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_domain_membership.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_domain_membership.ps1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/win_domain_user.ps1 PSAvoidUsingConvertToSecureStringWithPlainText
lib/ansible/modules/windows/win_domain_user.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_dsc.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_dsc.ps1 PSAvoidUsingConvertToSecureStringWithPlainText
lib/ansible/modules/windows/win_dsc.ps1 PSAvoidUsingEmptyCatchBlock
lib/ansible/modules/windows/win_dsc.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_dsc.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_eventlog.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_feature.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_feature.ps1 PSAvoidUsingInvokeExpression
lib/ansible/modules/windows/win_feature.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_file.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_file.ps1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/win_file_version.ps1 PSUseBOMForUnicodeEncodedFile
lib/ansible/modules/windows/win_find.ps1 PSAvoidUsingEmptyCatchBlock
lib/ansible/modules/windows/win_find.ps1 PSAvoidUsingWMICmdlet
lib/ansible/modules/windows/win_find.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_firewall_rule.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_firewall_rule.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_firewall_rule.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_firewall_rule.ps1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/win_get_url.ps1 PSAvoidUsingPlainTextForPassword
lib/ansible/modules/windows/win_get_url.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_get_url.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_get_url.ps1 PSUseSupportsShouldProcess
lib/ansible/modules/windows/win_hotfix.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_hotfix.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_iis_virtualdirectory.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_iis_virtualdirectory.ps1 PSUseBOMForUnicodeEncodedFile
lib/ansible/modules/windows/win_iis_webapplication.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_iis_webapplication.ps1 PSUseBOMForUnicodeEncodedFile
lib/ansible/modules/windows/win_iis_webapppool.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_iis_webapppool.ps1 PSUseBOMForUnicodeEncodedFile
lib/ansible/modules/windows/win_iis_webbinding.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_iis_webbinding.ps1 PSUseBOMForUnicodeEncodedFile
lib/ansible/modules/windows/win_iis_website.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_iis_website.ps1 PSAvoidUsingPositionalParameters
lib/ansible/modules/windows/win_iis_website.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_iis_website.ps1 PSUseBOMForUnicodeEncodedFile
lib/ansible/modules/windows/win_iis_website.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_lineinfile.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_mapped_drive.ps1 PSAvoidUsingConvertToSecureStringWithPlainText
lib/ansible/modules/windows/win_mapped_drive.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_mapped_drive.ps1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/win_nssm.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_nssm.ps1 PSAvoidUsingInvokeExpression
lib/ansible/modules/windows/win_nssm.ps1 PSAvoidUsingPlainTextForPassword
lib/ansible/modules/windows/win_nssm.ps1 PSAvoidUsingUserNameAndPassWordParams
lib/ansible/modules/windows/win_nssm.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_nssm.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_nssm.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_nssm.ps1 PSUseOutputTypeCorrectly
lib/ansible/modules/windows/win_package.ps1 PSAvoidUsingConvertToSecureStringWithPlainText
lib/ansible/modules/windows/win_package.ps1 PSAvoidUsingPlainTextForPassword
lib/ansible/modules/windows/win_package.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_package.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_package.ps1 PSUsePSCredentialType
lib/ansible/modules/windows/win_pagefile.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_pagefile.ps1 PSAvoidUsingPositionalParameters
lib/ansible/modules/windows/win_pagefile.ps1 PSAvoidUsingWMICmdlet
lib/ansible/modules/windows/win_pagefile.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_pagefile.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_pagefile.ps1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/win_pagefile.ps1 PSUseSupportsShouldProcess
lib/ansible/modules/windows/win_path.ps1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/win_power_plan.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_product_facts.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_psexec.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_psexec.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_psmodule.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_psmodule.ps1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/win_rabbitmq_plugin.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_rabbitmq_plugin.ps1 PSAvoidUsingInvokeExpression
lib/ansible/modules/windows/win_reg_stat.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_regedit.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_region.ps1 PSAvoidUsingEmptyCatchBlock
lib/ansible/modules/windows/win_region.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_region.ps1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/win_robocopy.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_route.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_route.ps1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/win_scheduled_task.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_scheduled_task.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_scheduled_task.ps1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/win_scheduled_task_stat.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_scheduled_task_stat.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_scheduled_task_stat.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_security_policy.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_security_policy.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_security_policy.ps1 PSUseDeclaredVarsMoreThanAssignments
lib/ansible/modules/windows/win_service.ps1 PSAvoidUsingPlainTextForPassword
lib/ansible/modules/windows/win_service.ps1 PSAvoidUsingUserNameAndPassWordParams
lib/ansible/modules/windows/win_service.ps1 PSAvoidUsingWMICmdlet
lib/ansible/modules/windows/win_service.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_service.ps1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/win_shell.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_shell.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_shortcut.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_stat.ps1 PSAvoidUsingWMICmdlet
lib/ansible/modules/windows/win_stat.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_stat.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_tempfile.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_tempfile.ps1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/win_unzip.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_unzip.ps1 PSUseApprovedVerbs
lib/ansible/modules/windows/win_updates.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_uri.ps1 PSAvoidUsingConvertToSecureStringWithPlainText
lib/ansible/modules/windows/win_user.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_user.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_user.ps1 PSUseShouldProcessForStateChangingFunctions
lib/ansible/modules/windows/win_wait_for.ps1 PSAvoidUsingEmptyCatchBlock
lib/ansible/modules/windows/win_wait_for.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_wakeonlan.ps1 PSAvoidUsingCmdletAliases
lib/ansible/modules/windows/win_webpicmd.ps1 PSAvoidUsingInvokeExpression
lib/ansible/modules/windows/win_webpicmd.ps1 PSPossibleIncorrectComparisonWithNull
lib/ansible/modules/windows/win_webpicmd.ps1 PSUseOutputTypeCorrectly
test/integration/targets/uri/files/testserver.ps1 PSPossibleIncorrectComparisonWithNull
test/integration/targets/win_audit_rule/library/test_get_audit_rule.ps1 PSAvoidUsingCmdletAliases
test/integration/targets/win_dsc/library/test_win_dsc_iis_info.ps1 PSPossibleIncorrectComparisonWithNull
test/integration/targets/win_dsc/templates/ANSIBLE_xTestResource.psm1 PSAvoidDefaultValueForMandatoryParameter
test/integration/targets/win_dsc/templates/ANSIBLE_xTestResource.psm1 PSUseShouldProcessForStateChangingFunctions
test/integration/targets/win_iis_webbinding/library/test_get_webbindings.ps1 PSUseApprovedVerbs
test/integration/targets/win_module_utils/library/argv_parser_test.ps1 PSUseApprovedVerbs
test/integration/targets/win_module_utils/library/camel_conversion_test.ps1 PSUseDeclaredVarsMoreThanAssignments
test/integration/targets/win_module_utils/library/command_util_test.ps1 PSPossibleIncorrectComparisonWithNull
test/integration/targets/win_module_utils/library/sid_utils_test.ps1 PSPossibleIncorrectComparisonWithNull
test/integration/targets/win_module_utils/library/symbolic_link_test.ps1 PSPossibleIncorrectComparisonWithNull
test/integration/targets/win_ping/library/win_ping_strict_mode_error.ps1 PSUseDeclaredVarsMoreThanAssignments
test/integration/targets/win_script/files/test_script.ps1 PSAvoidUsingWriteHost
test/integration/targets/win_script/files/test_script_creates_file.ps1 PSAvoidUsingCmdletAliases
test/integration/targets/win_script/files/test_script_with_args.ps1 PSAvoidUsingWriteHost
test/integration/targets/win_script/files/test_script_with_splatting.ps1 PSAvoidUsingWriteHost

14
test/sanity/pslint/pslint.ps1 Executable file
View file

@ -0,0 +1,14 @@
#!/usr/bin/env pwsh
#Requires -Version 6
#Requires -Modules PSScriptAnalyzer
Set-StrictMode -Version 2.0
$ErrorActionPreference = "Stop"
$Results = @()
ForEach ($Path in $Args) {
$Results += Invoke-ScriptAnalyzer -Path $Path
}
ConvertTo-Json -InputObject $Results

View file

@ -0,0 +1 @@
test/integration/targets/win_ping/library/win_ping_syntax_error.ps1