aggregate coverage metrics of unit tests across packages (#115)

aggregate coverage metrics of unit tests across packages
diff --git a/.travis.yml b/.travis.yml
index 4b317c2..b7cbdb9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,19 +3,15 @@
 install:
 - go get golang.org/x/crypto/ssh
 - go get -v -tags 'fixtures acceptance' ./...
+- go get github.com/wadey/gocovmerge
+- go get github.com/mattn/goveralls
 go:
-- 1.6
+- 1.7
 - tip
 env:
   global:
   - secure: "xSQsAG5wlL9emjbCdxzz/hYQsSpJ/bABO1kkbwMSISVcJ3Nk0u4ywF+LS4bgeOnwPfmFvNTOqVDu3RwEvMeWXSI76t1piCPcObutb2faKLVD/hLoAS76gYX+Z8yGWGHrSB7Do5vTPj1ERe2UljdrnsSeOXzoDwFxYRaZLX4bBOB4AyoGvRniil5QXPATiA1tsWX1VMicj8a4F8X+xeESzjt1Q5Iy31e7vkptu71bhvXCaoo5QhYwT+pLR9dN0S1b7Ro0KVvkRefmr1lUOSYd2e74h6Lc34tC1h3uYZCS4h47t7v5cOXvMNxinEj2C51RvbjvZI1RLVdkuAEJD1Iz4+Ote46nXbZ//6XRZMZz/YxQ13l7ux1PFjgEB6HAapmF5Xd8PRsgeTU9LRJxpiTJ3P5QJ3leS1va8qnziM5kYipj/Rn+V8g2ad/rgkRox9LSiR9VYZD2Pe45YCb1mTKSl2aIJnV7nkOqsShY5LNB4JZSg7xIffA+9YVDktw8dJlATjZqt7WvJJ49g6A61mIUV4C15q2JPGKTkZzDiG81NtmS7hFa7k0yaE2ELgYocbcuyUcAahhxntYTC0i23nJmEHVNiZmBO3u7EgpWe4KGVfumU+lt12tIn5b3dZRBBUk3QakKKozSK1QPHGpk/AZGrhu7H6l8to6IICKWtDcyMPQ="
-before_install:
-- go get github.com/axw/gocov/gocov
-- go get github.com/mattn/goveralls
-- go get github.com/pierrre/gotestcover
-- if ! go get github.com/golang/tools/cmd/cover; then go get golang.org/x/tools/cmd/cover;
-  fi
 script:
-- $HOME/gopath/bin/gotestcover -v -tags=fixtures -coverprofile=cover.out ./...
+- ./script/coverage
 after_success:
 - $HOME/gopath/bin/goveralls -service=travis-ci -coverprofile=cover.out
diff --git a/openstack/blockstorage/v1/apiversions/testing/doc.go b/openstack/blockstorage/v1/apiversions/testing/doc.go
index 7603f83..12e4bda 100644
--- a/openstack/blockstorage/v1/apiversions/testing/doc.go
+++ b/openstack/blockstorage/v1/apiversions/testing/doc.go
@@ -1 +1,2 @@
+// apiversions_v1
 package testing
diff --git a/openstack/blockstorage/v1/snapshots/testing/doc.go b/openstack/blockstorage/v1/snapshots/testing/doc.go
index 7603f83..85c45f4 100644
--- a/openstack/blockstorage/v1/snapshots/testing/doc.go
+++ b/openstack/blockstorage/v1/snapshots/testing/doc.go
@@ -1 +1,2 @@
+// snapshots_v1
 package testing
diff --git a/openstack/blockstorage/v1/volumes/testing/doc.go b/openstack/blockstorage/v1/volumes/testing/doc.go
index 2f66ba5..088e43c 100644
--- a/openstack/blockstorage/v1/volumes/testing/doc.go
+++ b/openstack/blockstorage/v1/volumes/testing/doc.go
@@ -1,7 +1,9 @@
+// volumes_v1
+package testing
+
 /*
 This is package created is to hold fixtures (which imports testing),
 so that importing volumes package does not inadvertently import testing into production code
 More information here:
 https://github.com/rackspace/gophercloud/issues/473
 */
-package testing
diff --git a/openstack/blockstorage/v1/volumetypes/testing/doc.go b/openstack/blockstorage/v1/volumetypes/testing/doc.go
index 7603f83..73834ed 100644
--- a/openstack/blockstorage/v1/volumetypes/testing/doc.go
+++ b/openstack/blockstorage/v1/volumetypes/testing/doc.go
@@ -1 +1,2 @@
+// volumetypes_v1
 package testing
diff --git a/openstack/blockstorage/v2/extensions/volumeactions/testing/doc.go b/openstack/blockstorage/v2/extensions/volumeactions/testing/doc.go
index 7603f83..e720733 100644
--- a/openstack/blockstorage/v2/extensions/volumeactions/testing/doc.go
+++ b/openstack/blockstorage/v2/extensions/volumeactions/testing/doc.go
@@ -1 +1,2 @@
+// volumeactions
 package testing
diff --git a/openstack/blockstorage/v2/volumes/testing/doc.go b/openstack/blockstorage/v2/volumes/testing/doc.go
index 7603f83..aa8351a 100644
--- a/openstack/blockstorage/v2/volumes/testing/doc.go
+++ b/openstack/blockstorage/v2/volumes/testing/doc.go
@@ -1 +1,2 @@
+// volumes_v2
 package testing
diff --git a/openstack/cdn/v1/base/testing/doc.go b/openstack/cdn/v1/base/testing/doc.go
index 7603f83..891c69a 100644
--- a/openstack/cdn/v1/base/testing/doc.go
+++ b/openstack/cdn/v1/base/testing/doc.go
@@ -1 +1,2 @@
+// cdn_base_v1
 package testing
diff --git a/openstack/cdn/v1/flavors/testing/doc.go b/openstack/cdn/v1/flavors/testing/doc.go
index 7603f83..567b67e 100644
--- a/openstack/cdn/v1/flavors/testing/doc.go
+++ b/openstack/cdn/v1/flavors/testing/doc.go
@@ -1 +1,2 @@
+// cdn_flavors_v1
 package testing
diff --git a/openstack/cdn/v1/serviceassets/testing/doc.go b/openstack/cdn/v1/serviceassets/testing/doc.go
index 7603f83..1adb681 100644
--- a/openstack/cdn/v1/serviceassets/testing/doc.go
+++ b/openstack/cdn/v1/serviceassets/testing/doc.go
@@ -1 +1,2 @@
+// cdn_serviceassets_v1
 package testing
diff --git a/openstack/cdn/v1/services/testing/doc.go b/openstack/cdn/v1/services/testing/doc.go
index 7603f83..c72e391 100644
--- a/openstack/cdn/v1/services/testing/doc.go
+++ b/openstack/cdn/v1/services/testing/doc.go
@@ -1 +1,2 @@
+// cdn_services_v1
 package testing
diff --git a/openstack/common/extensions/testing/doc.go b/openstack/common/extensions/testing/doc.go
index 7603f83..24b0795 100644
--- a/openstack/common/extensions/testing/doc.go
+++ b/openstack/common/extensions/testing/doc.go
@@ -1 +1,2 @@
+// common_extensions
 package testing
diff --git a/openstack/compute/v2/extensions/bootfromvolume/testing/doc.go b/openstack/compute/v2/extensions/bootfromvolume/testing/doc.go
index 7603f83..cb879d9 100644
--- a/openstack/compute/v2/extensions/bootfromvolume/testing/doc.go
+++ b/openstack/compute/v2/extensions/bootfromvolume/testing/doc.go
@@ -1 +1,2 @@
+// compute_extensions_bootfromvolume_v2
 package testing
diff --git a/openstack/compute/v2/extensions/defsecrules/testing/doc.go b/openstack/compute/v2/extensions/defsecrules/testing/doc.go
index 7603f83..7e51c8f 100644
--- a/openstack/compute/v2/extensions/defsecrules/testing/doc.go
+++ b/openstack/compute/v2/extensions/defsecrules/testing/doc.go
@@ -1 +1,2 @@
+// compute_extensions_defsecrules_v2
 package testing
diff --git a/openstack/compute/v2/extensions/diskconfig/testing/doc.go b/openstack/compute/v2/extensions/diskconfig/testing/doc.go
index 7603f83..54c863b 100644
--- a/openstack/compute/v2/extensions/diskconfig/testing/doc.go
+++ b/openstack/compute/v2/extensions/diskconfig/testing/doc.go
@@ -1 +1,2 @@
+// compute_extensions_diskconfig_v2
 package testing
diff --git a/openstack/compute/v2/extensions/floatingips/testing/doc.go b/openstack/compute/v2/extensions/floatingips/testing/doc.go
index 7603f83..961aeee 100644
--- a/openstack/compute/v2/extensions/floatingips/testing/doc.go
+++ b/openstack/compute/v2/extensions/floatingips/testing/doc.go
@@ -1 +1,2 @@
+// compute_extensions_floatingips_v2
 package testing
diff --git a/openstack/compute/v2/extensions/keypairs/testing/doc.go b/openstack/compute/v2/extensions/keypairs/testing/doc.go
index 7603f83..8f8aaca 100644
--- a/openstack/compute/v2/extensions/keypairs/testing/doc.go
+++ b/openstack/compute/v2/extensions/keypairs/testing/doc.go
@@ -1 +1,2 @@
+// compute_extensions_keypairs_v2
 package testing
diff --git a/openstack/compute/v2/extensions/networks/testing/doc.go b/openstack/compute/v2/extensions/networks/testing/doc.go
index 7603f83..76a18cd 100644
--- a/openstack/compute/v2/extensions/networks/testing/doc.go
+++ b/openstack/compute/v2/extensions/networks/testing/doc.go
@@ -1 +1,2 @@
+// compute_extensions_networks_v2
 package testing
diff --git a/openstack/compute/v2/extensions/quotasets/testing/doc.go b/openstack/compute/v2/extensions/quotasets/testing/doc.go
index 7603f83..19ad75d 100644
--- a/openstack/compute/v2/extensions/quotasets/testing/doc.go
+++ b/openstack/compute/v2/extensions/quotasets/testing/doc.go
@@ -1 +1,2 @@
+// compute_extensions_quotasets_v2
 package testing
diff --git a/openstack/compute/v2/extensions/schedulerhints/testing/doc.go b/openstack/compute/v2/extensions/schedulerhints/testing/doc.go
index 7603f83..0640b5d 100644
--- a/openstack/compute/v2/extensions/schedulerhints/testing/doc.go
+++ b/openstack/compute/v2/extensions/schedulerhints/testing/doc.go
@@ -1 +1,2 @@
+// compute_extensions_schedulerhints_v2
 package testing
diff --git a/openstack/compute/v2/extensions/secgroups/testing/doc.go b/openstack/compute/v2/extensions/secgroups/testing/doc.go
index 7603f83..fbf4613 100644
--- a/openstack/compute/v2/extensions/secgroups/testing/doc.go
+++ b/openstack/compute/v2/extensions/secgroups/testing/doc.go
@@ -1 +1,2 @@
+// compute_extensions_secgroups_v2
 package testing
diff --git a/openstack/compute/v2/extensions/servergroups/testing/doc.go b/openstack/compute/v2/extensions/servergroups/testing/doc.go
index 7603f83..65433f7 100644
--- a/openstack/compute/v2/extensions/servergroups/testing/doc.go
+++ b/openstack/compute/v2/extensions/servergroups/testing/doc.go
@@ -1 +1,2 @@
+// compute_extensions_servergroups_v2
 package testing
diff --git a/openstack/compute/v2/extensions/startstop/testing/doc.go b/openstack/compute/v2/extensions/startstop/testing/doc.go
index 7603f83..6135475 100644
--- a/openstack/compute/v2/extensions/startstop/testing/doc.go
+++ b/openstack/compute/v2/extensions/startstop/testing/doc.go
@@ -1 +1,2 @@
+// compute_extensions_startstop_v2
 package testing
diff --git a/openstack/compute/v2/extensions/tenantnetworks/testing/doc.go b/openstack/compute/v2/extensions/tenantnetworks/testing/doc.go
index 7603f83..7ed7ce3 100644
--- a/openstack/compute/v2/extensions/tenantnetworks/testing/doc.go
+++ b/openstack/compute/v2/extensions/tenantnetworks/testing/doc.go
@@ -1 +1,2 @@
+// compute_extensions_tenantnetworks_v2
 package testing
diff --git a/openstack/compute/v2/extensions/testing/doc.go b/openstack/compute/v2/extensions/testing/doc.go
index 7603f83..5818711 100644
--- a/openstack/compute/v2/extensions/testing/doc.go
+++ b/openstack/compute/v2/extensions/testing/doc.go
@@ -1 +1,2 @@
+// compute_extensions_v2
 package testing
diff --git a/openstack/compute/v2/extensions/volumeattach/testing/doc.go b/openstack/compute/v2/extensions/volumeattach/testing/doc.go
index 29faced..2cc0ab4 100644
--- a/openstack/compute/v2/extensions/volumeattach/testing/doc.go
+++ b/openstack/compute/v2/extensions/volumeattach/testing/doc.go
@@ -1,7 +1,9 @@
+// compute_extensions_volumeattach_v2
+package testing
+
 /*
 Package testing holds fixtures (which imports testing),
 so that importing volumeattach package does not inadvertently import testing into production code
 More information here:
 https://github.com/gophercloud/gophercloud/issues/473
 */
-package testing
diff --git a/openstack/compute/v2/flavors/testing/doc.go b/openstack/compute/v2/flavors/testing/doc.go
index 7603f83..0d00761 100644
--- a/openstack/compute/v2/flavors/testing/doc.go
+++ b/openstack/compute/v2/flavors/testing/doc.go
@@ -1 +1,2 @@
+// compute_flavors_v2
 package testing
diff --git a/openstack/compute/v2/images/testing/doc.go b/openstack/compute/v2/images/testing/doc.go
index 7603f83..6f59ade 100644
--- a/openstack/compute/v2/images/testing/doc.go
+++ b/openstack/compute/v2/images/testing/doc.go
@@ -1 +1,2 @@
+// compute_images_v2
 package testing
diff --git a/openstack/compute/v2/servers/testing/doc.go b/openstack/compute/v2/servers/testing/doc.go
index 7603f83..c7c5982 100644
--- a/openstack/compute/v2/servers/testing/doc.go
+++ b/openstack/compute/v2/servers/testing/doc.go
@@ -1 +1,2 @@
+// compute_servers_v2
 package testing
diff --git a/openstack/db/v1/configurations/testing/doc.go b/openstack/db/v1/configurations/testing/doc.go
index 7603f83..60c997a 100644
--- a/openstack/db/v1/configurations/testing/doc.go
+++ b/openstack/db/v1/configurations/testing/doc.go
@@ -1 +1,2 @@
+// db_configurations_v1
 package testing
diff --git a/openstack/db/v1/databases/testing/doc.go b/openstack/db/v1/databases/testing/doc.go
index 7603f83..abdfab9 100644
--- a/openstack/db/v1/databases/testing/doc.go
+++ b/openstack/db/v1/databases/testing/doc.go
@@ -1 +1,2 @@
+// db_databases_v1
 package testing
diff --git a/openstack/db/v1/datastores/testing/doc.go b/openstack/db/v1/datastores/testing/doc.go
index 7603f83..8f06f86 100644
--- a/openstack/db/v1/datastores/testing/doc.go
+++ b/openstack/db/v1/datastores/testing/doc.go
@@ -1 +1,2 @@
+// db_datastores_v1
 package testing
diff --git a/openstack/db/v1/flavors/testing/doc.go b/openstack/db/v1/flavors/testing/doc.go
index 7603f83..0809266 100644
--- a/openstack/db/v1/flavors/testing/doc.go
+++ b/openstack/db/v1/flavors/testing/doc.go
@@ -1 +1,2 @@
+// db_flavors_v1
 package testing
diff --git a/openstack/db/v1/instances/testing/doc.go b/openstack/db/v1/instances/testing/doc.go
index 7603f83..386ac58 100644
--- a/openstack/db/v1/instances/testing/doc.go
+++ b/openstack/db/v1/instances/testing/doc.go
@@ -1 +1,2 @@
+// db_instances_v1
 package testing
diff --git a/openstack/db/v1/users/testing/doc.go b/openstack/db/v1/users/testing/doc.go
index 7603f83..3c98966 100644
--- a/openstack/db/v1/users/testing/doc.go
+++ b/openstack/db/v1/users/testing/doc.go
@@ -1 +1,2 @@
+// db_users_v1
 package testing
diff --git a/openstack/identity/v2/extensions/admin/roles/testing/doc.go b/openstack/identity/v2/extensions/admin/roles/testing/doc.go
index 7603f83..70ba643 100644
--- a/openstack/identity/v2/extensions/admin/roles/testing/doc.go
+++ b/openstack/identity/v2/extensions/admin/roles/testing/doc.go
@@ -1 +1,2 @@
+// identity_extensions_admin_roles_v2
 package testing
diff --git a/openstack/identity/v2/extensions/testing/doc.go b/openstack/identity/v2/extensions/testing/doc.go
index 7603f83..6d4b67d 100644
--- a/openstack/identity/v2/extensions/testing/doc.go
+++ b/openstack/identity/v2/extensions/testing/doc.go
@@ -1 +1,2 @@
+// identity_extensions_v2
 package testing
diff --git a/openstack/identity/v2/tenants/testing/doc.go b/openstack/identity/v2/tenants/testing/doc.go
index 7603f83..57aaa1f 100644
--- a/openstack/identity/v2/tenants/testing/doc.go
+++ b/openstack/identity/v2/tenants/testing/doc.go
@@ -1 +1,2 @@
+// identity_tenants_v2
 package testing
diff --git a/openstack/identity/v2/tokens/testing/doc.go b/openstack/identity/v2/tokens/testing/doc.go
index 7603f83..f9767eb 100644
--- a/openstack/identity/v2/tokens/testing/doc.go
+++ b/openstack/identity/v2/tokens/testing/doc.go
@@ -1 +1,2 @@
+// identity_tokens_v2
 package testing
diff --git a/openstack/identity/v2/users/testing/doc.go b/openstack/identity/v2/users/testing/doc.go
index 7603f83..a007def 100644
--- a/openstack/identity/v2/users/testing/doc.go
+++ b/openstack/identity/v2/users/testing/doc.go
@@ -1 +1,2 @@
+// identity_users_v2
 package testing
diff --git a/openstack/identity/v3/endpoints/testing/doc.go b/openstack/identity/v3/endpoints/testing/doc.go
index 7603f83..b6e89ef 100644
--- a/openstack/identity/v3/endpoints/testing/doc.go
+++ b/openstack/identity/v3/endpoints/testing/doc.go
@@ -1 +1,2 @@
+// identity_endpoints_v3
 package testing
diff --git a/openstack/identity/v3/extensions/trusts/testing/doc.go b/openstack/identity/v3/extensions/trusts/testing/doc.go
new file mode 100644
index 0000000..e660e20
--- /dev/null
+++ b/openstack/identity/v3/extensions/trusts/testing/doc.go
@@ -0,0 +1,2 @@
+// identity_extensions_trusts_v3
+package testing
diff --git a/openstack/identity/v3/roles/testing/doc.go b/openstack/identity/v3/roles/testing/doc.go
index 7603f83..37bcb85 100644
--- a/openstack/identity/v3/roles/testing/doc.go
+++ b/openstack/identity/v3/roles/testing/doc.go
@@ -1 +1,2 @@
+// identity_roles_v3
 package testing
diff --git a/openstack/identity/v3/services/testing/doc.go b/openstack/identity/v3/services/testing/doc.go
index 7603f83..e4f1167 100644
--- a/openstack/identity/v3/services/testing/doc.go
+++ b/openstack/identity/v3/services/testing/doc.go
@@ -1 +1,2 @@
+// identity_services_v3
 package testing
diff --git a/openstack/identity/v3/tokens/testing/doc.go b/openstack/identity/v3/tokens/testing/doc.go
index 7603f83..ad1d35d 100644
--- a/openstack/identity/v3/tokens/testing/doc.go
+++ b/openstack/identity/v3/tokens/testing/doc.go
@@ -1 +1,2 @@
+// identity_tokens_v3
 package testing
diff --git a/openstack/networking/v2/apiversions/testing/doc.go b/openstack/networking/v2/apiversions/testing/doc.go
index 7603f83..0accd99 100644
--- a/openstack/networking/v2/apiversions/testing/doc.go
+++ b/openstack/networking/v2/apiversions/testing/doc.go
@@ -1 +1,2 @@
+// networking_apiversions_v2
 package testing
diff --git a/openstack/networking/v2/extensions/external/testing/doc.go b/openstack/networking/v2/extensions/external/testing/doc.go
index 7603f83..8a30f6b 100644
--- a/openstack/networking/v2/extensions/external/testing/doc.go
+++ b/openstack/networking/v2/extensions/external/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_external_v2
 package testing
diff --git a/openstack/networking/v2/extensions/fwaas/firewalls/testing/doc.go b/openstack/networking/v2/extensions/fwaas/firewalls/testing/doc.go
index 7603f83..6b46bba 100644
--- a/openstack/networking/v2/extensions/fwaas/firewalls/testing/doc.go
+++ b/openstack/networking/v2/extensions/fwaas/firewalls/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_fwaas_firewalls_v2
 package testing
diff --git a/openstack/networking/v2/extensions/fwaas/policies/testing/doc.go b/openstack/networking/v2/extensions/fwaas/policies/testing/doc.go
index 7603f83..d2707f0 100644
--- a/openstack/networking/v2/extensions/fwaas/policies/testing/doc.go
+++ b/openstack/networking/v2/extensions/fwaas/policies/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_fwaas_policies_v2
 package testing
diff --git a/openstack/networking/v2/extensions/fwaas/rules/testing/doc.go b/openstack/networking/v2/extensions/fwaas/rules/testing/doc.go
index 7603f83..481ae2e 100644
--- a/openstack/networking/v2/extensions/fwaas/rules/testing/doc.go
+++ b/openstack/networking/v2/extensions/fwaas/rules/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_fwaas_rules_v2
 package testing
diff --git a/openstack/networking/v2/extensions/layer3/floatingips/testing/doc.go b/openstack/networking/v2/extensions/layer3/floatingips/testing/doc.go
index 7603f83..aa13338 100644
--- a/openstack/networking/v2/extensions/layer3/floatingips/testing/doc.go
+++ b/openstack/networking/v2/extensions/layer3/floatingips/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_layer3_floatingips_v2
 package testing
diff --git a/openstack/networking/v2/extensions/layer3/routers/testing/doc.go b/openstack/networking/v2/extensions/layer3/routers/testing/doc.go
index 7603f83..ef44c2e 100644
--- a/openstack/networking/v2/extensions/layer3/routers/testing/doc.go
+++ b/openstack/networking/v2/extensions/layer3/routers/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_layer3_routers_v2
 package testing
diff --git a/openstack/networking/v2/extensions/lbaas/members/testing/doc.go b/openstack/networking/v2/extensions/lbaas/members/testing/doc.go
index 7603f83..3878904 100644
--- a/openstack/networking/v2/extensions/lbaas/members/testing/doc.go
+++ b/openstack/networking/v2/extensions/lbaas/members/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_lbaas_members_v2
 package testing
diff --git a/openstack/networking/v2/extensions/lbaas/monitors/testing/doc.go b/openstack/networking/v2/extensions/lbaas/monitors/testing/doc.go
index 7603f83..5ee866b 100644
--- a/openstack/networking/v2/extensions/lbaas/monitors/testing/doc.go
+++ b/openstack/networking/v2/extensions/lbaas/monitors/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_lbaas_monitors_v2
 package testing
diff --git a/openstack/networking/v2/extensions/lbaas/pools/testing/doc.go b/openstack/networking/v2/extensions/lbaas/pools/testing/doc.go
index 7603f83..415dd2c 100644
--- a/openstack/networking/v2/extensions/lbaas/pools/testing/doc.go
+++ b/openstack/networking/v2/extensions/lbaas/pools/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_lbaas_pools_v2
 package testing
diff --git a/openstack/networking/v2/extensions/lbaas/vips/testing/doc.go b/openstack/networking/v2/extensions/lbaas/vips/testing/doc.go
index 7603f83..8e91e78 100644
--- a/openstack/networking/v2/extensions/lbaas/vips/testing/doc.go
+++ b/openstack/networking/v2/extensions/lbaas/vips/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_lbaas_vips_v2
 package testing
diff --git a/openstack/networking/v2/extensions/lbaas_v2/listeners/testing/doc.go b/openstack/networking/v2/extensions/lbaas_v2/listeners/testing/doc.go
index 7603f83..c74a4de 100644
--- a/openstack/networking/v2/extensions/lbaas_v2/listeners/testing/doc.go
+++ b/openstack/networking/v2/extensions/lbaas_v2/listeners/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_lbaas_v2_listeners_v2
 package testing
diff --git a/openstack/networking/v2/extensions/lbaas_v2/loadbalancers/testing/doc.go b/openstack/networking/v2/extensions/lbaas_v2/loadbalancers/testing/doc.go
index 7603f83..b06352e 100644
--- a/openstack/networking/v2/extensions/lbaas_v2/loadbalancers/testing/doc.go
+++ b/openstack/networking/v2/extensions/lbaas_v2/loadbalancers/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_lbaas_v2_loadbalancers_v2
 package testing
diff --git a/openstack/networking/v2/extensions/lbaas_v2/monitors/testing/doc.go b/openstack/networking/v2/extensions/lbaas_v2/monitors/testing/doc.go
index 7603f83..443f9ad 100644
--- a/openstack/networking/v2/extensions/lbaas_v2/monitors/testing/doc.go
+++ b/openstack/networking/v2/extensions/lbaas_v2/monitors/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_lbaas_v2_monitors_v2
 package testing
diff --git a/openstack/networking/v2/extensions/lbaas_v2/pools/testing/doc.go b/openstack/networking/v2/extensions/lbaas_v2/pools/testing/doc.go
index 7603f83..65eb521 100644
--- a/openstack/networking/v2/extensions/lbaas_v2/pools/testing/doc.go
+++ b/openstack/networking/v2/extensions/lbaas_v2/pools/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_lbaas_v2_pools_v2
 package testing
diff --git a/openstack/networking/v2/extensions/portsbinding/testing/doc.go b/openstack/networking/v2/extensions/portsbinding/testing/doc.go
index 7603f83..deb52b1 100644
--- a/openstack/networking/v2/extensions/portsbinding/testing/doc.go
+++ b/openstack/networking/v2/extensions/portsbinding/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_portsbinding_v2
 package testing
diff --git a/openstack/networking/v2/extensions/provider/testing/doc.go b/openstack/networking/v2/extensions/provider/testing/doc.go
index 7603f83..370ce19 100644
--- a/openstack/networking/v2/extensions/provider/testing/doc.go
+++ b/openstack/networking/v2/extensions/provider/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_provider_v2
 package testing
diff --git a/openstack/networking/v2/extensions/security/groups/testing/doc.go b/openstack/networking/v2/extensions/security/groups/testing/doc.go
index 7603f83..69d5db7 100644
--- a/openstack/networking/v2/extensions/security/groups/testing/doc.go
+++ b/openstack/networking/v2/extensions/security/groups/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_security_groups_v2
 package testing
diff --git a/openstack/networking/v2/extensions/security/rules/testing/doc.go b/openstack/networking/v2/extensions/security/rules/testing/doc.go
index 7603f83..a4f7b43 100644
--- a/openstack/networking/v2/extensions/security/rules/testing/doc.go
+++ b/openstack/networking/v2/extensions/security/rules/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_security_rules_v2
 package testing
diff --git a/openstack/networking/v2/extensions/testing/doc.go b/openstack/networking/v2/extensions/testing/doc.go
index 7603f83..5a104fb 100644
--- a/openstack/networking/v2/extensions/testing/doc.go
+++ b/openstack/networking/v2/extensions/testing/doc.go
@@ -1 +1,2 @@
+// networking_extensions_v2
 package testing
diff --git a/openstack/networking/v2/networks/testing/doc.go b/openstack/networking/v2/networks/testing/doc.go
index 7603f83..860bd7a 100644
--- a/openstack/networking/v2/networks/testing/doc.go
+++ b/openstack/networking/v2/networks/testing/doc.go
@@ -1 +1,2 @@
+// networking_networks_v2
 package testing
diff --git a/openstack/networking/v2/ports/testing/doc.go b/openstack/networking/v2/ports/testing/doc.go
index 7603f83..70a559a 100644
--- a/openstack/networking/v2/ports/testing/doc.go
+++ b/openstack/networking/v2/ports/testing/doc.go
@@ -1 +1,2 @@
+// networking_ports_v2
 package testing
diff --git a/openstack/networking/v2/subnets/testing/doc.go b/openstack/networking/v2/subnets/testing/doc.go
index 7603f83..43be31a 100644
--- a/openstack/networking/v2/subnets/testing/doc.go
+++ b/openstack/networking/v2/subnets/testing/doc.go
@@ -1 +1,2 @@
+// networking_subnets_v2
 package testing
diff --git a/openstack/objectstorage/v1/accounts/testing/doc.go b/openstack/objectstorage/v1/accounts/testing/doc.go
index 7603f83..b8fdf88 100644
--- a/openstack/objectstorage/v1/accounts/testing/doc.go
+++ b/openstack/objectstorage/v1/accounts/testing/doc.go
@@ -1 +1,2 @@
+// objectstorage_accounts_v1
 package testing
diff --git a/openstack/objectstorage/v1/containers/testing/doc.go b/openstack/objectstorage/v1/containers/testing/doc.go
index 7603f83..c27fa49 100644
--- a/openstack/objectstorage/v1/containers/testing/doc.go
+++ b/openstack/objectstorage/v1/containers/testing/doc.go
@@ -1 +1,2 @@
+// objectstorage_containers_v1
 package testing
diff --git a/openstack/objectstorage/v1/objects/testing/doc.go b/openstack/objectstorage/v1/objects/testing/doc.go
index 7603f83..f008a80 100644
--- a/openstack/objectstorage/v1/objects/testing/doc.go
+++ b/openstack/objectstorage/v1/objects/testing/doc.go
@@ -1 +1,2 @@
+// objectstorage_objects_v1
 package testing
diff --git a/openstack/objectstorage/v1/swauth/testing/doc.go b/openstack/objectstorage/v1/swauth/testing/doc.go
index 7603f83..ff3bf37 100644
--- a/openstack/objectstorage/v1/swauth/testing/doc.go
+++ b/openstack/objectstorage/v1/swauth/testing/doc.go
@@ -1 +1,2 @@
+// objectstorage_swauth_v1
 package testing
diff --git a/openstack/orchestration/v1/apiversions/testing/doc.go b/openstack/orchestration/v1/apiversions/testing/doc.go
index 7603f83..3d545fd 100644
--- a/openstack/orchestration/v1/apiversions/testing/doc.go
+++ b/openstack/orchestration/v1/apiversions/testing/doc.go
@@ -1 +1,2 @@
+// orchestration_apiversions_v1
 package testing
diff --git a/openstack/orchestration/v1/buildinfo/testing/doc.go b/openstack/orchestration/v1/buildinfo/testing/doc.go
index 7603f83..3655974 100644
--- a/openstack/orchestration/v1/buildinfo/testing/doc.go
+++ b/openstack/orchestration/v1/buildinfo/testing/doc.go
@@ -1 +1,2 @@
+// orchestration_buildinfo_v1
 package testing
diff --git a/openstack/orchestration/v1/stackevents/testing/doc.go b/openstack/orchestration/v1/stackevents/testing/doc.go
index 7603f83..2e22a6c 100644
--- a/openstack/orchestration/v1/stackevents/testing/doc.go
+++ b/openstack/orchestration/v1/stackevents/testing/doc.go
@@ -1 +1,2 @@
+// orchestration_stackevents_v1
 package testing
diff --git a/openstack/orchestration/v1/stackresources/testing/doc.go b/openstack/orchestration/v1/stackresources/testing/doc.go
index 7603f83..16e1dae 100644
--- a/openstack/orchestration/v1/stackresources/testing/doc.go
+++ b/openstack/orchestration/v1/stackresources/testing/doc.go
@@ -1 +1,2 @@
+// orchestration_stackresources_v1
 package testing
diff --git a/openstack/orchestration/v1/stacks/testing/doc.go b/openstack/orchestration/v1/stacks/testing/doc.go
index 7603f83..5b3703e 100644
--- a/openstack/orchestration/v1/stacks/testing/doc.go
+++ b/openstack/orchestration/v1/stacks/testing/doc.go
@@ -1 +1,2 @@
+// orchestration_stacks_v1
 package testing
diff --git a/openstack/orchestration/v1/stacktemplates/testing/doc.go b/openstack/orchestration/v1/stacktemplates/testing/doc.go
index 7603f83..43c6b0f 100644
--- a/openstack/orchestration/v1/stacktemplates/testing/doc.go
+++ b/openstack/orchestration/v1/stacktemplates/testing/doc.go
@@ -1 +1,2 @@
+// orchestration_stacktemplates_v1
 package testing
diff --git a/openstack/testing/doc.go b/openstack/testing/doc.go
index 7603f83..34cfe7a 100644
--- a/openstack/testing/doc.go
+++ b/openstack/testing/doc.go
@@ -1 +1,2 @@
+// openstack
 package testing
diff --git a/openstack/utils/testing/doc.go b/openstack/utils/testing/doc.go
index 7603f83..66ecc07 100644
--- a/openstack/utils/testing/doc.go
+++ b/openstack/utils/testing/doc.go
@@ -1 +1,2 @@
+//utils
 package testing
diff --git a/pagination/testing/doc.go b/pagination/testing/doc.go
index 7603f83..0bc1eb3 100644
--- a/pagination/testing/doc.go
+++ b/pagination/testing/doc.go
@@ -1 +1,2 @@
+// pagination
 package testing
diff --git a/script/coverage b/script/coverage
new file mode 100755
index 0000000..ab3a4f3
--- /dev/null
+++ b/script/coverage
@@ -0,0 +1,9 @@
+#!/bin/bash
+n=1
+for testpkg in $(go list ./testing ./.../testing); do
+  covpkg="${testpkg/"/testing"/}"
+  go test -covermode count -coverprofile "testing_"$n.coverprofile -coverpkg $covpkg $testpkg 2>/dev/null
+  n=$((n+1))
+done
+gocovmerge `ls *.coverprofile` > cover.out
+rm *.coverprofile
diff --git a/testing/doc.go b/testing/doc.go
index 7603f83..244a62e 100644
--- a/testing/doc.go
+++ b/testing/doc.go
@@ -1 +1,2 @@
+// gophercloud
 package testing