aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2019-12-22Update Xtesting to 0.86Cédric Ollivier1-1/+1
It eases dumping all logs for third-parties. Change-Id: I6055e85902eb41cce01f1502cd31d7ec489708d8 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 14a39e86860031bc19d114a8641a52148e1e829e)
2019-12-07Run tests sequentially in tempest_slowCédric Ollivier3-3/+3
concurrency is set to 2 in the upstream job [1] but it conflicts with serial also passed. As it fails once without any other test in parallel, the number of executors should be decreased [2]. [0] https://799189c1bf6a1aa9c8de-48970bda2a30ee836a70a12e61555969.ssl.cf1.rackcdn.com/694893/1/check/tempest-slow/1bf5851/job-output.txt [1] http://artifacts.opnfv.org/functest/functest-opnfv-functest-smoke-cntt-hunter-tempest_slow-run-7/tempest_slow/tempest-report.html Change-Id: I51bc9a584cf4b32a88b7a84d9387e7b8e90281c2 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 83c3cc3f9b71de33cd1e88c11da4879156be7cf3)
2019-12-07Disable false ansiblelint warningsCédric Ollivier2-2/+2
git commit has to be executed via shell module [1]. It also update ansible to conform with the latest changes in XtestingCI. [1] https://github.com/ansible/ansible/issues/50334 Change-Id: I3cc7a675eddabb0cbd9834a9e64fe7389a11865f Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 36acd696022081c06a4d5f25ac13ea50cc5f1d2a)
2019-12-03Disable tempest serial_console testingCédric Ollivier1-1/+1
DevStack seems incorrect when configuring serial console in case of multinode deployment (missing proxyclient_address in master, missing socket in Rocky, etc). Then the testing is disabled. Change-Id: I9d1d43017b0935b23ea2a939748b5f709212c70d Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 55adb2ddd6ee699c026e6f623e599f4d6cb322cb)
2019-12-02Verify Shaker results via json reportCédric Ollivier1-0/+8
As shaker always returns 0, it verifies the records and returns false after the first failure. Change-Id: I9393be0c65d315c1ca055de9f7f994f9db22eadb Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 6b9e3d83030a6fe63d29bf679db93e4793700ee2)
2019-12-02Return result = 0 if failure in juju_epcCédric Ollivier1-0/+1
Else it's falsy successfull [1] [1] https://build.opnfv.org/ci/job/airship-opnfv-functest-vnf-latest-juju_epc-run/42/console Change-Id: Ic9f7c37db998904833c90ae3ee912e9908617abd Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit e03d0444b53d1a9eaeadf52f66fb69d35889d768)
2019-11-30Update Xtesting to 0.85.0Cédric Ollivier1-1/+1
It fixes falsy hrefs returned by OPNFV Test API. Change-Id: Ib6e7e7e35cf6ad581fb67692dcba561769686007 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 3b7311af247edfdc3b6aa61b56b3c2afa4722347)
2019-11-27Add swift scenario in rallyCédric Ollivier3-1/+76
As for refstack_object, it forces swift in SUT. Role is hardcoded to admin as for a few Neutron tests. Change-Id: I0ae823fc8f31016d37831a82f7a50e92b2ed5f58 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 72a238d63d6e2e15eb74d02c3030663404c3872c)
2019-11-27Update package list before installing in CircleCICédric Ollivier1-1/+1
It currently fails: https://app.circleci.com/jobs/github/collivier/functest/189 Change-Id: I8d3e2f468c6c44fa2b680f0370100d2bcf786601 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 0ae9a065aefcb592c6a51b0004f98419d22fee0e)
2019-11-27Propose CNTT Compliance playbookCédric Ollivier2-0/+81
It eases building CI/CD toolchains everywhere veryfing the compliance between CNTT Chapter 5 API and local platforms. Change-Id: Ia5375031d5e8cafca808d52c71dde70f80e841e9 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 3259d7433b8315e0d4dce668c480f1a6594a5fc6)
2019-11-26Add tempest_scenario and tempest_slow in smoke-cnttCédric Ollivier1-0/+50
The testcases related to ipv6 are currenty not executed because they cannot be covered by our SUTs. Close cntt-n/CNTT#696 Change-Id: Ic0ca3818011bede965702e778f37752059c86173 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit a1c9756dbf867a6cfacffdecadbaf66c412c129f)
2019-11-26Add tempest slowCédric Ollivier2-0/+34
It conforms with tempest-slow-py3 executed in Neutron Gates [1]. [1] https://logs.opendev.org/68/672568/6/check/tempest-slow-py3/49fece6/testr_results.html.gz Change-Id: I0c1c6f7be38c9fcdd1a32e5cfa2bc4d8414885e0 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit bbe35dc42e442fa2669a24e7927d389188e42b4c)
2019-11-26Add functest-benchmarking-cnttCédric Ollivier4-2/+102
It configures Rally to verify the mandatory services asked by CNTT. It also prepares the next benchmarking (API and dataplane) KPIs. Change-Id: Ie8701ddfa1a497f8b1a6f839e6ff7a77849b618c Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 92460cf5330c29eb483d903f3aa659cbad1d58b8)
2019-11-26Complete tempest_full for CNTT ComplianceCédric Ollivier3-3/+32
It forbids skipping any test and counts the testcases executed. It mosly avoids running tests accoring to the upstream skip tests (known bugs), related to nova-network, glance v1, keystone v2 and all features defined as optional by CNTT. It fixes an issue highlighted by yallint. Close cntt-n/CNTT#624 Change-Id: Ib4678cb9e9fc37b16fcf21d8418931eae0f667d0 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 21a0708799bd0fa61e086dc6f1c0f35c1450b55c)
2019-11-26Add tempest_full in ComplianceCédric Ollivier3-0/+108
Change-Id: Ib2898d48d21704a06cf1f4574df81f4f0dae3f52 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 97dffc8fa0c297854d2cb96e10833c40a7c949fe)
2019-11-26Update scheduler_available_filtersCédric Ollivier2-7/+1
Else few tests are skipped if DifferentHostFilter is not available. Change-Id: Idfc524216dc8503e590d4fed569a43e99ea22123 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit c8a4d5f41f90dcbc60e3b276ed560b3b10be7bef)
2019-11-25Add rally_sanityCédric Ollivier1-1/+23
Gnocchi and Barbican are not currently selected by CNTT. Then they are removed from the optional list. Change-Id: I46d16b2cabd832b2655606b0708a6f43721cb3c5 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit d673cd586a464079c35660e828d81952f2707b4f)
2019-11-25Verify additional Nova featuresCédric Ollivier1-3/+26
Our SUT allows verifying the next Nova features - shelve - vnc_console - cold_migration attach_encrypted_volume is now False because of ceph. It writes the tempest default values to ease highlighting the overall configuration. Change-Id: Ib9ebc8e5b390ea99edf2c3aacbd873c5eb6e7abc Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit f196f59ef2f3f4e4eca3759dbfa725f035614d5b)
2019-11-24Switch to OPNFV Clearwater repositoryCédric Ollivier1-45/+77
Project Clearwater is backed by Metaswitch Networks [1]. They will therefore not be reinstating the 14.04 Project Clearwater repo server. Then all binaries have been compiled and published on http://artifacts.opnfv.org/functest/clearwater/debian Then it updates sources.list.d/clearwater.list [1] https://www.projectclearwater.org/ Change-Id: I529e59f8aeeafb96bafb7da8a1cce5c4c5a9e031 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 0159c469d752fd41876c81995e113562650f73a0)
2019-11-22Set manage_volume_ref and manage_snapshot_refCédric Ollivier1-0/+2
Ceph doesn't conform with the LVM driver and asks for modifying the manage volume and snapshop refs [1]. It allows passing test_unmanage_manage_snapshot [2]. [1] https://opendev.org/openstack/tempest/commit/ebc752b59dd3e2164807930e31b313a92bce70d5 [2] http://artifacts.opnfv.org/functest/functest-opnfv-functest-smoke-latest-tempest_full-run-480/tempest_full/tempest-report.html Change-Id: I8d3b2484ba5cbd203c32fa446fa27e17a80888d5 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit ce9e26333b6f70a8fbabb86f9987c3c320e0cc26)
2019-11-22Conform with latest SUT updatesCédric Ollivier2-3/+3
Ceph is now used as backend which requires few adaptations for live migration. It differs from the main OpenStack gates but suits CNTT and most of the feedbacks received from enduser deployments. Change-Id: If6b76a7d4ec09f90467f3e63618c15a9b413bfbd Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit f6d84155526f367c73a43a83aca31af9ecdcc51a)
2019-11-18Add tempest_keystone in CNTT API ComplianceCédric Ollivier1-0/+18
It excludes test_federated_authentication as federation is currently optional [1]. Close cntt-n/CNTT#624 [1] https://github.com/collivier/CNTT/commit/2e4ae5d0f4ebf4ef4bbc2504ed6cd46388361c09 Change-Id: Ie322e7912c429543c5da92f8afb33de3e8e75c8a Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 8384c497bd55b0e31e971b0e01b2f3744c07eccb)
2019-11-18Update Xtesting 0.84Cédric Ollivier1-1/+1
It bypasses the current S3 compat limitation as proposed by google (multipart upload). Change-Id: Id702bf32e41e0d2ff904f1e22df1998857454106 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 4895057eef7f967194885fd794dc01e311ae56de)
2019-11-17Fix details in RallyCédric Ollivier1-5/+4
self.details is now a dict and summary is located under root [1]. [1] https://build.opnfv.org/ci/job/functest-opnfv-functest-smoke-hunter-rally_sanity-run/422/console Change-Id: Ic89e674b2f6660704b9dafe6070a224753e2af46 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 07b6f59f209d4bdf7b9a722ac348f87f3bfce320)
2019-11-16Update to Xtesting 0.83Cédric Ollivier2-2/+2
It supports mimetypes and then eases reading the reports from browser. Change-Id: Ic38fca9fb05ca1ad76b589800b22bc78882c7806 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 9df8ee861d2161a105598474092e5e83da88a354)
2019-11-16Correctly override dir_results and res_dirCédric Ollivier1-2/+2
Both have to be modified else publishing artifacts fails [1]. [1] https://build.opnfv.org/ci/job/functest-opnfv-functest-healthcheck-latest-tempest_smoke-run/555/console Change-Id: Ibd110e4b57cb443b12adea73f73c8cdf7f828652 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 793e17835b948be7c421d6b9e766878e82e56fa7)
2019-11-16Optimize lxml build if armCédric Ollivier1-0/+1
Else it raises timeouts on travis-ci.org: https://www.travis-ci.org/collivier/functest/builds/612068457 https://www.travis-ci.org/collivier/functest/builds/612116863 https://www.travis-ci.org/collivier/functest/jobs/612116916 Change-Id: Id34144ebcdf3f418d5a07068434eb7aa96b023d2 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 6fd2216a21aad00a0c6fba272f04ee0319fc119a)
2019-11-15Test identity project_tags and application_credentialsCédric Ollivier1-0/+5
Both are supported by OpenStack and Functest gates. It also sets the default values to highlight the coverage. Change-Id: Iae080a8bde0c411acc7811e7a0e70e3471db8c98 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit c0069ab720070eaaa07f083e508ded5e89e39571) (cherry picked from commit 041162760eb2b96fbe4baaed6971a90fb53421f0)
2019-11-15Upgrade cinder tempest plugin to 0.2.0Cédric Ollivier1-1/+1
One test passing in 0.2.0 seems buggy in 0.1.0: Can't revert volume 1c37f177-aef5-42f1-92d4-21dbd08777e7 to its latest snapshot 7a9f97c1-86bb-4f99-9aeb-a4bdc45ae923. The volume size must be equal to the snapshot size Change-Id: I5d36c7e38bd58e1606b616550373f670b08b3bd7 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
2019-11-14Add tempest_cinder in complianceCédric Ollivier1-219/+7
It conforms with Cinder Microversions and Feature [1]. It cleans the testcases which require CNTT updates (Keystone, Glance, Nova, etc.) [1] https://github.com/cntt-n/CNTT/pull/577 Change-Id: I8e719e9f48d70a860c0f879117144bb3ce6f4875 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 91de272c725a9a4d9d5b97381e574802036da8b7)
2019-11-14Add keystone-tempest-pluginCédric Ollivier5-2/+41
It adds tempest_keystone which runs the tests proposed by keystone-tempest-plugin [1]. [1] https://opendev.org/openstack/keystone-tempest-plugin Change-Id: I83db584c37fe63a549ccf396b03e034778254b3a Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 22ec0c1008b81f368476d8cea84117a93d15dab2)
2019-11-14Add cinder-tempest-pluginCédric Ollivier5-3/+44
It adds tempest_cinder which runs the tests proposed by cinder-tempest-plugin [1]. test_incremental_backup is disabled because it currently fails vs Functest SUT (under analysis). [1] https://opendev.org/openstack/cinder-tempest-plugin Change-Id: I85b255eb05b9ab1c74c3829148da5230d6c7647e Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit e46aa41172fa1bf63364505fbbf922323788ac98)
2019-11-14Update neutron-tempest-plugin-api regex (CNTT)Cédric Ollivier1-9/+2
It conforms with the last updates in API [1] adding Neutron QoS and Trunk as mandatory. QosMinimumBandwidthRuleTestJSON is skipped as it's not covered by OpenStack (and Functest) gates. [1] https://github.com/cntt-n/CNTT/pull/463 Change-Id: I54ff5e1fdb9b1e7265c63e3f66dfcf2f10db07d5 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 0c07bc255968d21558d3aec8ac7e4dc7659a69a2)
2019-11-14Fix py version in pathCédric Ollivier1-1/+1
Change-Id: Ie927a0abf9615a0a8f832b718622d022c5b0ca47 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 08c3ef387ff40fb0bd9d4a9579ecec4ab50f833c)
2019-11-14Add features volume testingCédric Ollivier1-0/+8
The next features are supported by Functest SUT: - backup - snapshot - clone - manage_snapshot - manage_volume - volume_revert Change-Id: I0e83bb616a56b9e8651115bebf2373f85c642260 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 21dff047b6363c17a3fd56c4857df6b6e354eb67)
2019-11-13Set provider_vlans in tempest Neutron_plugin_optionsCédric Ollivier1-0/+1
Few tests are skipped if this value is unset. Then it's needed to fully cover Neutron Trunk (Compliance). Change-Id: Ife4becb7ff8b47c2d90fc6c5eb4f585685205ed6 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 2f7805141872eb52adfaa2545d547e6a72d96ca0)
2019-11-13Fix parent container in smoke-cntt/DockerfileCédric Ollivier1-1/+1
Change-Id: I3e7cfd66f503d09f3a30b381fbeae9fa5a83cf68 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
2019-11-10Buld cntt containers in a specific stageCédric Ollivier1-19/+21
They must be built after smoke. Change-Id: I939ef6c4663ad940c9f1b95440980628c4880385 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit de56278767076c2edb00865d65b4d7495acb6d9e)
2019-11-09Publish functest-cntt-smokeCédric Ollivier4-1/+310
It tunes neutron-tempest-plugin-api to avoid skipping any test (conformance as expected by CNTT). Until CNTT clearly defines the optional and mandatory neutron extensions, it selects the OpenStack and Functest gate values as default. The next Neutron extensions are considered as optional (still verified by functest-smoke): - logging - network-segment-range - port-resource-request - qos - trunk - metering - uplink-status-propagation - dns-domain-ports - dns-integration - router-interface-fip - rbac-security-groups - floatingip-pools The next tests (tempest_full, tempest_slow, tempest_scenario, etc.) will be updated in next changes. Change-Id: I003d1e509cd6dc7bd58261f27676fb53cb79e68c Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 1456f68e90103afab958ae8a305c840e6fa29cf7)
2019-11-09Update to Xtesting 0.82.0Cédric Ollivier3-1/+5
Change-Id: Ie94b35c9107c851bf0a412c1361629e0cf4154a2 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 74384557d789e000b43f1622124ba348c3a678a5)
2019-11-07Update Xtesting to 0.81Cédric Ollivier2-2/+2
It contains a key fix about bucket creation. It also changes the Rebaca link which sometimes breaks sphinx spellcheck. Change-Id: Iaa7c791ad9a70c9fb65288557c5c8e8cddb5f2d0 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 331877142ab37dd2c7a4b7ca773bb8e3c87d0012)
2019-11-03Update xtesting to 0.80.0Cédric Ollivier4-11/+4
It allows publishing the artifacts via Xtesting. It's required by the new Xtesting Ansible role [1]. It disables the pylint warning super-on-old-class which is falsy here (xtesting 0.80 conforms with py3 rules). [1] https://github.com/collivier/ansible-role-xtesting/commit/8c62525bb0d0b5f8dcc2c4436711d5d075de8811 Change-Id: I832e5e19467c7fd86a46574448faad4d6f2d4c0d Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit d0ee068c6e1c4a6e0a52156143a04feb6f9a78cb)
2019-11-02Pin sphinxcontrib-spelling (4.2.1)Cédric Ollivier1-0/+1
Change-Id: I7587caf387c4fefbf382e56a3246fe1929854ed2 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 4e5ec2a6716789713917c99cb2efadbb72d2fc39)
2019-10-26Add spelling exceptions (travis-ci)Cédric Ollivier1-0/+3
This words seem fine but it enforces the verification in travis-ci [1]. [1] https://travis-ci.org/collivier/functest/jobs/603020830 Change-Id: I44b8db5e63668899a27480a7f7da5d48f9f41f21 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 66631dfdbc2fcacc7a397ecaa6bcac9937177808)
2019-10-26Allow checking Tests countCédric Ollivier3-0/+6
It meets CNTT requirements (verifying conformance with a reference implementation) and may protect vs synchronization issues (see gambia refstack_defcore). Change-Id: I842bc4ed91eec6bc545c489e3686d0d41dae7b44 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 7c67624b8ee7f7a9a7fb36bb25e9881a63c982d4)
2019-10-26Allow blacklisting tests if public endpoint onlyCédric Ollivier4-6/+30
It allows reusing the blacklisting system if only public endpoints are reachable (ONAP Openlab testing). It contains a first list of tempest-based tests which force the use of admin endpoints. Change-Id: Ic1ab07dec3ae1f2a0ca50b80e08cd0ac396f2e56 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 9679178a1f99b38264a2afb56097700bef34868a)
2019-10-24Add neutron_plugin_options section in tempest.confCédric Ollivier1-0/+3
It avoids skipping the next 2 tests [1]: neutron_tempest_plugin.api.admin.test_agent_availability_zone.AgentAvailabilityZoneTestCase.test_agents_availability_zone neutron_tempest_plugin.api.admin.test_networks.NetworksTestAdmin.test_create_tenant_network_vxlan [1] http://artifacts.opnfv.org/functest/functest-opnfv-functest-smoke-latest-neutron-tempest-plugin-api-run-498/results/neutron-tempest-plugin-api/tempest-report.html Change-Id: I83f3f44302336045e47514e0aa0b67737161f0e1 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 1e33a4884e3b7e49b2d4ae3725fe60b6fcfd5607)
2019-10-19Update Flake8Cédric Ollivier2-1/+2
It avoids the next incompatibility: ERROR: flake8 2.5.5 has requirement mccabe<0.5,>=0.2.1, but you'll have mccabe 0.6.1 which is incompatible. Change-Id: Ic3bb14b032adfee64109549abc0a09d8cc86968f Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 4d98d29002bf3ce61e1671db0b35c9046e2fbd8b)
2019-10-19Check spelling in rst filesCédric Ollivier12-16/+177
It fixes a few typos too and installs enchant in TravisCI and CircleCI jobs. Change-Id: Id5dbf5f926edc8b0b4e4337d11bf63e21ea7e173 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 83aa78773dd0fea7064b8fa9676c44c061dc5e66)
2019-10-11Leverage on Rally task tagsCédric Ollivier2-40/+34
It avoids parsing rally task outputs which may hang (subprocess communicate) as seen in rally_full and rally_jobs. It simply selects test names as tags. Change-Id: I88b54a8f155e557f8a606fdbd7d86c1f4d5dae3b Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit 74df72ec294998787a8f0af5e2084db91ba0778b)