@Override
    public ProcResult fetchResult() throws AnalysisException {
        Preconditions.checkNotNull(clusterInfoService);

        BaseProcResult result = new BaseProcResult();
        result.setNames(getMetadata());

        final List<List<String>> backendInfos = getClusterBackendInfos();
        for (List<String> backendInfo : backendInfos) {
            List<String> oneInfo = new ArrayList<>(backendInfo.size());
            oneInfo.addAll(backendInfo);
            result.addRow(oneInfo);
        }
        return result;
    }
@Test
    public void testFetchResultSharedData() throws AnalysisException {
        new Expectations() {
            {
                RunMode.isSharedDataMode();
                minTimes = 0;
                result = true;
            }
        };

        BackendsProcDir dir = new BackendsProcDir(systemInfoService);
        ProcResult result = dir.fetchResult();
        Assert.assertNotNull(result);
        Assert.assertTrue(result instanceof BaseProcResult);
        int columnIndex = getTabletNumColumnIndex(result.getColumnNames());
        Assert.assertTrue(columnIndex >= 0);
        for (List<String> row : result.getRows()) {
            Assert.assertEquals(String.valueOf(tabletNumSharedData), row.get(columnIndex));
        }
    }